基于XML的spring声明式事务控制——Spring框架系列教程(22)

Java技术 潘老师 3年前 (2021-03-02) 1020 ℃ (0) 扫码查看

1.spring基于XML的声明式事务环境搭建
(1)创建java项目,导入jar包
包括IOC,AOP,数据库驱动,以及数据库事务相关:
基于XML的spring声明式事务控制——Spring框架系列教程(22)
合计如下:
基于XML的spring声明式事务控制——Spring框架系列教程(22)
(2)创建模拟的service和dao
基于XML的spring声明式事务控制——Spring框架系列教程(22)
(3)创建bean.xml。添加beans,aop,tx的名称空间
配置servcie和dao的bean以及配置spring内置数据源
基于XML的spring声明式事务控制——Spring框架系列教程(22)
(4)配置spring的声明式事务控制

<!-- spring基于XML的声明式事务控制 -->
     <!-- 第一步 配置事务管理器 -->
     <bean id="transcationManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 注入数据源 -->
         <property name="dataSource" ref="dataSource"></property>
     </bean>
     
     <!-- 第二步:配置事务通知 -->
     <tx:advice id="txAdvice" transaction-manager="transactionManager">
         <!-- 第四步 配置事务属性
             isolation:配置事务隔离级别,默认值是DEFAULT,使用数据库的默认隔离级别。mysql数据库是REPEATABLE_READ
             propagation:配置事务传播行为。默认值是REQUIRED,一般的选择,适用增删改方法,当时查询方法时使用SUPPORTS
             read-only:配置是否只读事务,默认值false,读写型事务。当指定为true时,只读事务,只能用于查询方法
             timeout:指定事务的超时时间。默认值是-1,永不超时,当指定其他值时,以秒为单位
             rollback-for:用于指定一个异常,当执行产生该异常时,事务回滚,当产生其他异常时,事务不回滚。没有默认值,任何异常都回滚
             no-rollback-for:用于指定一个异常,当执行产生该异常时,事务不回滚,当产生其他异常时,事务回滚。没有默认值,任何异常都回滚
          -->
         <tx:attributes>
             <!-- 通配查询方法 优先级较高 -->
             <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
             <!-- 通配增删改方法 -->
             <tx:method name="*" propagation="REQUIRED" read-only="false"/>
         </tx:attributes>
     </tx:advice>
     
     <!-- 第三步  配置AOP-->
     <aop:config>
         <!-- 配置切入点表达式 -->
         <aop:pointcut expression="execution(* com.huaiwei.service.impl.*.*(..))" id="pt1"/>
         <!-- 配置切入点表达式和事务通知的关联关系 -->
         <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"/>
     </aop:config>

基于XML的spring声明式事务控制——Spring框架系列教程(22)


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/2210.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】