编程式事务与声明式事务管理

编程式事务:TransactionTemplate和哪些持久化模板类一样是线程安全的,因此,可以在多个业务类中共享TranscationTemplate实例进行事务管理.TransactionTemplate拥有多个设置事务的属性方法.如setReadOnly(boolean only),setIsolationLevel(int isolationLevel)等。

·void setTransactionManager(PlatformTransactionManager transactionManager) 设置事务管理器.
·Object execute(TransactionCallback action): 在TransactionCallback回调接口中定义需要以事务方式组织的数据访问逻辑

·TransactionCallback 接口只有一个方法: Object doInTransaction(TransactionStatus status).如果操作不会返回结
果,则可以使用TransactionCallback的子接口 TransactionCallbackWithoutResult。

声明式的事务管理:可以在spring的核心配置文件里通过AOP的方式

声明式还可以使用注解:首先配置一个事务管理器再配置一个开启事务的配置

<tx:advice id="txAdvice" transaction-manager="transactionManager">在业务层的代码上加上@Transactional(timeout = 500, isolation = Isolation.READ_COMMITTED)(括号里是对事务属性的注释)的注解。

编程式的事务:(一般不怎么使用)TransctionTemplate里面有两个核心方法setTransactionManager 和execute核心方法,里面需要一个回调方法,在回调方法里把需要执行的事务逻辑加进去就好。我个人认为这样不太好,因为这个代码卸载service层中,那么我的service层内就要额外的注入这个对象要去专门的要这个对象去调这个excute方法,我认为这样很麻烦,用过注解版本后,还是认为注解版本更适合三层架构的形式。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值