首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么加了@Transactional注解,事务没有回滚?

在前天的《事务管理入门》一文发布之后,有读者联系说根据文章尝试,加了@Transactional注解之后,事务并没有回滚。...问题原因 在前文的描述,我漏了一个细节,其实在示例代码,与之前拿的基础例子在配置中有一个关键属性没有提到,就是下面这个配置: spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect...这里的spring.jpa.database-platform配置主要用来设置hibernate使用的方言。...来建表,而MyISAM存储引擎是没有事务的。...所以,如果你的事务没有生效,那么可以看看创建的表,是不是使用了MyISAM存储引擎,如果是的话,那就是这个原因了! 除此之外,对于事务没有生效的可能还很多,比如,在同一个类定义又调用等。

87410
您找到你想要的搜索结果了吗?
是的
没有找到

为什么加了@WebFilter注解Spring没有给我自动注入该过滤器?

Spring 编程,主要配合如下注解构建过滤器: @ServletComponentScan @WebFilter 那这看起来只是用上这俩注解就能继续摸鱼了呀。...但上了生产后,还是能遇到花式问题: 工作不起来 顺序不对 执行多次等 大多因为想当然觉得使用简单,没有上心。还是有必要精通过滤器执行的流程和原理。...但调试发现,在 Spring Boot ,Bean 名字确实是对的,只是 Bean 实例其实是 FilterRegistrationBean。...为什么没有成为一个普通 Bean?...前文解析可知,使用 @WebFilter 修饰过滤器时,TimeCostFilter 类型的 Bean 并没有注册至 Spring 容器,真正注册的是 FilterRegistrationBean。

93730

Spring@Autowired注解、@Resource注解的区别

Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。...二、@Resource有两个属性是比较重要的,分是name和type Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。...如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配; 四、@Autowired 与@Resource的区别:...@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required...@Resource(这个注解属于J2EE的),默认安装名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter

88630

聊聊Spring的@Autowired注解

ElementType.PARAMETER:表示可以写在方法参数前 ElementType.FIELD:表示可以写在属性上 ElementType.ANNOTATION_TYPE:表示可以写在其他注解上...写在构造方法上 对于@Autowired写在构造方法上的情况,跟Spring选择构造方法的逻辑有关,一个类是不是有多个构造方法,是不是加了@Autowired注解,是不是有默认构造方法,跟构造方法参数类型和个数都有关系...写在方法参数前 把@Autowired写在参数前没有多大意义,只在spring-test中有去处理这种情况,源码注释原文: Although @Autowired can technically be...support in the spring-test module 写在属性上 这种情况不用多说了,值得注意的是,默认情况下,因为@Autowired的required属性为true,表示强制依赖,...写在其他注解上 比如我们可以自定义要给注解: @Autowired @Retention(RetentionPolicy.RUNTIME) public @interface HoellerAutowired

34910

Spring注解与反射

1.7@ComponentScan @ComponentScan注解用于配置Spring需要扫描的被组件注解注释的类所在的包。...1.8@Component @Component注解用于标注一个普通的组件类,它没有明确的业务范围,只是通知Spring被此注解的类需要被纳入到Spring Bean容器并进行管理。...1.10@Repository @Repository注解也是@Component注解的延伸,与@Component注解一样,被此注解标注的类会被Spring自动管理起来,@Repository注解用于标注...---- 三、自定义注解 学习自定义注解对于理解Spring框架十分有好处,即使在实际项目中可能不需要使用自定义注解,但可以帮助我们掌握Spring的一些底层原理,从而提高对整体项目的把握。...* * 注解可以为参数赋值,如果没有默认值,那么必须为注解的参数赋值 * */ @MyAnnotation(value = "解释") public void test

67210

Spring 框架 @PostConstruct 注解详解

Spring项目经常遇到@PostConstruct注解,首先介绍一下它的用途: 被注解的方法,在对象加载完依赖注入后执行。...首先,我们可以看到这个注解是在javax.annotation包下的,也就是java拓展包定义的注解,并不是spring定义的,但至于为什么不在java包下,是因为java语言的元老们认为这个东西并不是...文档说一个类只能有一个方法加此注解,但实际测试,我在一个类多个方法加了此注解,并没有报错,而且都执行了,我用的是 Spring Boot 框架。...以上是对@PostConstruct的简单介绍,下面会从spring源码分析其具体实现原理。Spring 最常用的 7 大类注解这篇推荐看下。...前文说了 “我在一个类多个方法加了此注解,并没有报错,而且都执行了”,看过上述代码后就知道了,spring根本没有按照javax的要求做限制,可能认为没必要吧。

23.7K44

SpringResponsebody注解的作用

好长一段时间以来都只是写些测试代码,好久没写项目代码了,以至于spring那套东西日渐生疏了。...最近在折腾一个小项目,写了一个controller用来响应ajax请求,结果断点调试发现一直返回”404 …not response…”,折腾了快2小时,一直没想到是注解的问题,万般无赖之下上了度娘,方才如梦初醒...这个注解表示该方法的返回结果直接写入HTTP response body,一般在异步获取数据时使用。 在使用@RequestMapping后,返回值通常解析为跳转路径。...加上@responsebody后,返回结果直接写入HTTP response body,不会被解析为跳转路径。..."result", "success"); return AppUtil.returnObject(new PageData(), map); } 例如,在我用来响应ajax请求的上述方法

67020

【Java】基础52:注解没有想象那么简单

对于刚开始学Java的人来说,可能都没有注意这个警告,而该注解可以使编译器不要报出警告信息。...注解名称以大写开头(大驼峰命名规则) ②定义注解属性 属性的格式为:属性数据类型 属性名(); 其格式和接口中的抽象方法很类似。 但是注解只有属性,没有任何方法。...①在类上可以直接使用注解。 ②在属性上也可以使用注解。 ③在方法上也可以使用注解。 以上便是注解的常用使用方式,甚至注解在参数列表也可以直接使用。...如果注解只有一个属性,可以将属性名定义为 value,这样使用该注解时可以省略 value= 也就是说注解若是只有一个value属性,使用它时直接就可以赋值,比如:@MyAnnotation(“刘小爱...在计算机,可以将其理解成最初始的意思。 元注解便是最初始的注解注解注解,主要作用就是用来修饰自定义注解。 其中有两种元注解,代码如下: ?

35520

JavaEE开发之Spring的条件注解、组合注解与元注解

上篇博客我们详细的聊了《JavaEE开发之Spring的多线程编程以及任务定时器详解》,本篇博客我们就来聊聊条件注解@Conditional以及组合条件。...在Spring条件注解可以说是设计模式状态模式的一种体现方式,同时也是面向对象编程多态的应用部分。而组合注解就是将现有的注解进行组合。下方会给出具体的介绍和实例。...在Spring条件注解可以说是设计模式状态模式的一种体现方式,同时也是面向对象编程多态的应用部分。...因为我们会在Spring的配置类中指定具体条件下的具体类。接下来,我们将来看一下Spring框架@Conditional注解的具体使用方式。...创建完相应的组合注解后就到了使用的时候了,上面注解的使用和一般的注解没有什么区别。

872100

Spring 注解与分层思想

Spring框架中最常见的几个注解 @Controller, @Service, @Component, @Repository 其中@Component是一种通用名称,泛指任意可以通过Spring...Service 表示了在软件分层设计的Service层,用来连结数据层(DAO)和展示层(Presentation)。 为什么要在DAO层上加一层Service呢?...根据上面的逻辑,我们在实际开发,应该不去实现自己的DAO层,而是使用Spring Data JPA,因为Spring Data JPA已经实现了DAO层。 这种写法常见的问题有啥?...好处是简单,当业务不复杂时,确实没有必要使用一个庞大的面向对象开发框架(domain driven design)。...但是太多的实际例子表明,如果没有好的架构,当小项目膨胀到一定程度时,往往是无法维护的,只能全部推倒重写。 在Domain Driven Design如何区分各种Service?

1.6K00
领券