设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

一个项目的SpringCloud微服务改造过程(7)

发布时间:2019-08-06 16:22 所属栏目:21 来源:黄玲峰
导读:Spring事务有两种处理方式: 编程式 用TransactionTemplate或者直接使用底层的PlatformTransactionManager将事务代码写在业务代码中。 优点:可以在代码块中处理事务,比较灵活。 缺点:对代码具有侵入性。 声明式

Spring事务有两种处理方式:

  • 编程式

用TransactionTemplate或者直接使用底层的PlatformTransactionManager将事务代码写在业务代码中。
优点:可以在代码块中处理事务,比较灵活。 
缺点:对代码具有侵入性。

  • 声明式

采用@Transactional注解或者基于配置文件方式,在方法前后进行拦截。
优点:非侵入性不会污染代码。
缺点:事务只能在方法和类上控制,粒度较小。
A、使用@Transactional注解
非SpringBoot工程,需要在配置文件中加入配置:

  1. <tx:annotation-driven/>
     

SpringBoot工程可以用@EnableTransactionManagement注解代替上面的配置内容。
B、采用配置文件方式 
之前的sso是基于配置的方式,配置代码如下:

  1. <aop:config> 
  2.       <aop:pointcut expression="execution(public * com.creditease.permission.service.impl.*Impl.*(..))" id="pointcut"/> 
  3.       <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/> 
  4.   </aop:config> 
  5.   <tx:advice id="txAdvice" transaction-manager="transactionManager"> 
  6.       <tx:attributes> 
  7.           <tx:method name="query*" propagation="REQUIRED" read-only="true"/> 
  8.           <tx:method name="find*" propagation="REQUIRED" read-only="true"/> 
  9.           <tx:method name="save*" propagation="REQUIRED"/> 
  10.           <tx:method name="delete*" propagation="REQUIRED"/> 
  11.           <tx:method name="add*" propagation="REQUIRED"/> 
  12.           <tx:method name="modify*" propagation="REQUIRED"/> 
  13.       </tx:attributes> 
  14.   </tx:advice>

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读