【障碍再现】
MyBatis配置多数据源时,数据源切换失败。
【原因分析】
自定义切面和Spring自带事务切面“即<aop:advisor>”执行的先后顺序导致数据源不能切换成功。
【解决方案】
1、配置代码
1 <aop:config> 2 <!-- 1、Spring框架自身提供的切面 --> 3 <aop:advisor advice-ref="userTxAdvice" pointcut="execution(public * com.zjrodger.*.service..*.*(..))" order="2"/> 4 <!-- 2、用户自定义的切面,根据切入点,动态切换数据源。 --> 5 <aop:aspect id="dataSourceAspect" ref="dataSourceInterceptor" order="1"> 6 <aop:before method="setdataSourceBakDb" pointcut="execution(* com.zjrodger.bakdata.service..*.*(..))"/> 7 <aop:before method="setdataSourceHuihangDb" pointcut="execution(* com.zjrodger.datatobank.service..*.*(..))"/> 8 </aop:aspect> 9 </aop:config>