找不到Transactional类 依赖@Transactional的解决办法

看的别人的源代码是这样:

import org.springframework.transaction.annotation.Transactional;

但其实对我来说是错误的
应该是:

import org.springframework.transaction.annotation.Transactional;

添加的依赖如下:

 <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>

最后,今天的一大收获是知道了
https://mvnrepository.com
可以查所需要的东西,直接复制粘贴dependency。有些类不在我们所以为的包里,这个网站就显得很有用。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用@Transactional注解时,有一些情况下可能会导致其不生效: 1. 注解放置的位置不正确:@Transactional注解应该放置在需要开启事务的方法上,而不是放在级别上。如果将注解放在级别上,那么每个方法都会被事务管理,可能产生意想不到的结果。 2. 注解未被Spring扫描到:如果使用@ComponentScan或<context:component-scan>等方式进行组件扫描时,确保@Transactional所在的被扫描到。否则,Spring将无法识别并为其创建代理对象。 3. 同方法相互调用问题:当在同一个中的两个方法相互调用时,@Transactional注解可能无法生效。这是因为Spring的事务是基于代理机制实现的,通过代理对象来控制事务的开启与提交。而在同一个中的方法调用是直接的,不经过代理对象,因此事务注解会失效。 4. 异常被try-catch处理:如果在@Transactional注解标注的方法中使用了try-catch语句捕获了异常,并未抛出异常,那么事务将无法回滚。事务的回滚是依赖于抛出异常来触发的。 5. 事务传播机制导致:如果在一个事务内部调用了另一个加了@Transactional注解的方法,而被调用的方法又开启了自己的事务,则外部事务的@Transactional注解将被失效,内部事务的注解生效。 6. 数据库不支持事务:某些不支持事务的数据库,如MyISAM等,即使使用了@Transactional注解也无法开启事务。 注意:以上只是一些常见的情况,具体的原因可能因环境和配置的不同而异。因此,在使用@Transactional注解时,我们应该仔细检查和排除以上情况,确保事务能够正确生效。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值