事务使用注意事项

**

事务使用注意事项

**
声明式事务是基于spring AOP实现,这就要求在事务使用符合AOP的相应规范
所有的涉及数据库操作的类必须要发布对应的bean,可以在spring的配置文件中(组件web- inf/spring目录下)或者通过spring的注释进行发布(@controller、@service、@repository、 @component)。
所有数据库操作类的获取,如果是服务的通过@Autowired或者ServiceFactory.getInstance().getService()获取,如果是bo或者其他数据操作类,一律通过@Autowired或者ApplicationContextHolder.getInstance(this).getBean(),BizObjectFactory.get
BizObject****获取,其他方式获取一律错误(也有其他的替代方法,出于好检查发现问题,只要求这一种获取bean)。
@Transactional 注解应该只被应用到 public 可见度的方法上。 如果你在 protected、private 或者package-visible 的方法上使@Transactional 注解,它也不会报错,但是这个被注解的方法将不会展示已配置的事务设置(xml使用方式除外),如果是static修饰也不会生效。
即使你满足以上有事务的情况,你通过注解或者类ApplicationContextHolder获取对应的数据库操作类(BO),并且对应的方法也有对应的事务注解,你仍然有可能是在没有事务情况下作数据库操作(所以方法间调用时this不要乱使用)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值