• 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)到方法上写注解,就可以完成对方法的事务管理和设置事务属性策略了

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

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

  • 相关阅读:
    计算机网络常见面试题
    字节跳动2022秋招提前批来了!!!
    IBM Watson Studio
    Git提交GitHub
    python获取股票和基金等数据
    Cloud Foundry
    微软亚洲研究院的NLP一例
    Streamlit的学习小记
    在线学习云技术相关等
    IBM云部署相关
  • 原文地址:https://www.cnblogs.com/ibcdwx/p/12779647.html
Copyright © 2020-2023  润新知