加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

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

发布时间:2019-08-07 07:48:48 所属栏目:优化 来源:黄玲峰
导读:SSO是公司一个已经存在了若干年的项目,后端采用SpringMVC、MyBatis,数据库使用MySQL,前端展示使用Freemark。今年,我们对该项目进行了一次革命性的改进,将其改造成SpringCloud架构,并且把前后端分离,前端采用Vue框架。 一、使用SpringCloud架构进行

改造后的SpringBoot基于Java代码:

  1.  @Aspect 
  2. @Configuration 
  3. public class TransactionAdviceConfig { 
  4. /** 
  5. * 指定切入点 
  6. */ 
  7. private static final String AOP_POINTCUT_EXPRESSION = "execution(public * com.creditease.permission.service.impl.*Impl.*(..))"; 
  8.  
  9. @Resource 
  10. DruidDataSource dataSource; 
  11.  
  12. /** 
  13. * 指定处理事务的PlatformTransactionManager 
  14. * @return 
  15. */ 
  16. @Bean 
  17. public DataSourceTransactionManager transactionManager() { 
  18.  
  19. return new DataSourceTransactionManager(dataSource); 
  20.  
  21.  
  22. /** 
  23. * 指定切入点处理逻辑,执行事务 
  24. * @return 
  25. */ 
  26. @Bean 
  27. public TransactionInterceptor txAdvice() { 
  28.  
  29. DefaultTransactionAttribute txAttrRequired = new DefaultTransactionAttribute(); 
  30. txAttrRequired.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); 
  31.  
  32. DefaultTransactionAttribute txAttrRequiredReadonly = new DefaultTransactionAttribute(); 
  33. txAttrRequiredReadonly.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); 
  34. txAttrRequiredReadonly.setReadOnly(true); 
  35.  
  36. NameMatchTransactionAttributeSource source = new NameMatchTransactionAttributeSource(); 
  37. source.addTransactionalMethod("query*", txAttrRequiredReadonly); 
  38. source.addTransactionalMethod("find*", txAttrRequiredReadonly); 
  39. source.addTransactionalMethod("save*", txAttrRequired); 
  40. source.addTransactionalMethod("delete*", txAttrRequired); 
  41. source.addTransactionalMethod("add*", txAttrRequired); 
  42. source.addTransactionalMethod("modify*", txAttrRequired); 
  43. return new TransactionInterceptor(transactionManager(), source); 
  44.  
  45. /** 
  46. * Advisor组装配置,将Advice的代码逻辑注入到Pointcut位置 
  47. * @return 
  48. */ 
  49. @Bean 
  50. public Advisor txAdviceAdvisor() { 
  51.  
  52. AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut(); 
  53. pointcut.setExpression(AOP_POINTCUT_EXPRESSION); 
  54. return new DefaultPointcutAdvisor(pointcut, txAdvice()); 
  55. }
5)全局异常处理

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读