Spring事务管理

一.Spring事务管理

  1.在不同的平台操作事务的代码和技术上有略微不同的,不过在本质上还是打开事务,关闭事务,回滚事务等啊;所以spring提供了一个接口PlatFormTransationManager平台事务管理器对象,很多操作事务的技术平台都实现了该接口,比如hibernate,jdbc等;

  2.在pring中,PlatFormTransationManager平台事务管理器是核心的操作事务管理的对象,我只需要学习它即可,记得得导spring提供的jdbc包和tx包

 

 

 

二.Spring管理事务的属性

  1.事务隔离级别;隔离级别有4个取值:读未提交,读已提交,读重复读,串行化

  2.是否只读:true代表只读,不可对数据库进行增删改,只能查询;false可以增删改查

  3.事务传播行为:决定业务方法之间调用时,事务应该如何处理;取值有7个:

 

 三spirng管理事务的方式

  这三种方式都得依赖transactionManager核心事务管理器,该对象封装了对事务的所有操作,如打开事务,关闭事务等,相当jdbc时的connection,hibernate的session;因此该对象也是需要依赖连接池的,需要我们在spring配置中配置transactionManager核心事务管理器对象,以及给它注入dataSource连接池,如图:

  1.编码式:这个不说(基本不用)

  2.xml配置:

    (1)xml配置其实是将事务通知的代码织入到目标对象中;事务通知已由spring提供好了,我们只需要提供目标对象,在配置文件中配置事务通知,目标对象和织入的操作就可以了,如图:

 

 

 事务通知里还提供了对业务方法使用到事务时,管理业务的属性:事务隔离级别isolation,事务传播行为propagation,是否只读read-only;如果需要批量方法使用到相同属性策略的话,可以使用*进行匹配,以上的企业中常见的两套crud的方法命名

 

 这里用到不再是<aop:aspect>,是advisor顾问,如果事务通知类已经提供了,直接引用即可;

  3.注解配置

  (1)注解配置操作起来就很简单了,直接在配置文件中配置开启使用注解来管理aop事务的标签,该标签能全局进行查找它所支持的标签,不需指定包,如图:

 

   (2)到方法上写注解,就可以完成对方法的事务管理和设置事务属性策略了

 

   如果想要整个类的所有方法应用该事务属性策略,注解加到类上即可;

   如果想个别方法单独策略,其他方法统一属性策略,统一属性的策略在类上,个别方法上加想要的属性策略即可

posted @ 2020-04-26 15:13  爱编程DE文兄  阅读(145)  评论(0编辑  收藏  举报