spring boot 聲明式事務(wù)

  1. 新(xīn)聞資訊
  2. 技(jì )術百科(kē)
行業動态 公(gōng)司新(xīn)聞 案例分(fēn)享 技(jì )術百科(kē)

spring boot 聲明式事務(wù)

來源:奇站網絡 浏覽量:1405 發布日期: 2020-07-05

引入xml文(wén)件

以代碼的方式

  1. package com.qizhan100.demo;
  2. import java.util.Collections;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import org.aspectj.lang.annotation.Aspect;
  6. import org.springframework.aop.Advisor;
  7. import org.springframework.aop.aspectj.AspectJExpressionPointcut;
  8. import org.springframework.aop.support.DefaultPointcutAdvisor;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.context.annotation.Bean;
  11. import org.springframework.context.annotation.Configuration;
  12. import org.springframework.transaction.PlatformTransactionManager;
  13. import org.springframework.transaction.TransactionDefinition;
  14. import org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource;
  15. import org.springframework.transaction.interceptor.RollbackRuleAttribute;
  16. import org.springframework.transaction.interceptor.RuleBasedTransactionAttribute;
  17. import org.springframework.transaction.interceptor.TransactionAttribute;
  18. import org.springframework.transaction.interceptor.TransactionInterceptor;
  19. @Aspect
  20. @Configuration
  21. public class TxAdviceInterceptor {
  22. private static final int TX_METHOD_TIMEOUT = 5;
  23. @Autowired
  24. private PlatformTransactionManager transactionManager;
  25. @Bean
  26. public TransactionInterceptor txAdvice() {
  27. NameMatchTransactionAttributeSource source = new NameMatchTransactionAttributeSource();
  28. /* 隻讀事務(wù),不做更新(xīn)操作(zuò) */
  29. RuleBasedTransactionAttribute readOnlyTx = new RuleBasedTransactionAttribute();
  30. readOnlyTx.setReadOnly(true);
  31. readOnlyTx.setPropagationBehavior(TransactionDefinition.PROPAGATION_NOT_SUPPORTED);
  32. /* 當前存在事務(wù)就使用(yòng)當前事務(wù),當前不存在事務(wù)就創建一個新(xīn)的事務(wù) */
  33. RuleBasedTransactionAttribute requiredTx = new RuleBasedTransactionAttribute();
  34. requiredTx.setRollbackRules(Collections.singletonList(new RollbackRuleAttribute(Exception.class)));
  35. requiredTx.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
  36. requiredTx.setTimeout(TX_METHOD_TIMEOUT);
  37. Map<String, TransactionAttribute> txMap = new HashMap<>();
  38. txMap.put("add*", requiredTx);
  39. txMap.put("save*", requiredTx);
  40. txMap.put("insert*", requiredTx);
  41. txMap.put("update*", requiredTx);
  42. txMap.put("delete*", requiredTx);
  43. txMap.put("get*", readOnlyTx);
  44. txMap.put("query*", readOnlyTx);
  45. source.setNameMap(txMap);
  46. TransactionInterceptor txAdvice = new TransactionInterceptor(transactionManager, source);
  47. return txAdvice;
  48. }
  49. @Bean
  50. public Advisor txAdviceAdvisor() {
  51. AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
  52. pointcut.setExpression("execution(* *..dao.*.*(..))");
  53. pointcut.setExpression("execution(* *..service.*.*(..))");
  54. return new DefaultPointcutAdvisor(pointcut, txAdvice());
  55. }
  56. }
标簽:
下一篇 jenkins

廈門奇站網絡科(kē)技(jì )有(yǒu)限公(gōng)司

電(diàn)話:13313868605

QQ:3413772931

地址:廈門集美區(qū)軟件園三期


                    掃一掃加我咨詢

小受O被摁着扒开C嗯合不拢腿 少妇4做爰电影 战狼4完整免费观看在线播放版 晚秋影视大全在线观看免费视频 H+吃奶+呻吟+调教H 小毛驴影视在线观看 拍真实国产伦偷精品 丰满岳疯狂做爰2 免费无码又爽又刺激A片软件妖精 车上拨开内裤进入内内的软件 吃奶2做爰韩国 9I传媒有限公司 高H秘书不许穿内裤1VH GOGOGO高清完整版 17岁中国高清免费完整版 三年成全免费高清大全 被伴郎的内捧猛烈进出H 一面膜胸口一面膜下部位真人 我女朋友的妈妈双字ID5 三年在线观看免费大全哔哩哔哩 GOGOGO免费高清在线完整版 日产精品一线二线三线芒果 公借种日日躁我和公乱 中日韩高清无专码区2021 樱花影院电视剧免费 巜疯狂的少妇4做爰BD 麻花传剧原创MV免费观看 再深点灬舒服灬大了添JUWU 小柔被六个男人躁到早上电影 卖保险套的女销售3 维修工人的绝遇中文播放 最好看免费中文 交换娇妻1-36部分1 亚洲永久无码7777KKK 他趴在我两腿中间吸我电影 丰年经继拇中文3与其他教材比较 妻子6免费完整高清电视剧看 GOGOGO大但人文艺术创作背景 强壮的公次次弄得我高潮A片日本 男人边吻奶边挵进去A片小说 星空视频影视大全免费观看 中国老熟女重囗味HDXX 青青河边草免费观看西瓜动漫 AA片在线观看视频在线播放 最好看的2019中文大全在线观看 小学生高清电影免费观看 少女视频观看片TV哔哩哔哩 被各个室友爆炒了 扒开粉嫩小泬舌头伸进去视频漫画 一晚上接8上个客