码迷,mamicode.com
首页 > 编程语言 > 详细

spring 数据源动态切换 与dubbo服务

时间:2015-09-02 17:28:05      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:

1:问题描述

项目用了spring数据源动态切换,服务用的是dubbo。在运行一段时间后程序异常,更新操作没有切换到主库上。这个问题在先调用读操作后再调用写操作会出现。经分析原因有3: 第一:当程序运行一段时间后调用duboo服务时,读操作与写操作有可能会在一个线程里,当这种情况出现时

2:数据源配置

<idclass>
   <name>
      <key-type>
         <keyvalue-ref/>
         <keyvalue-ref/>
      </>
   </>
   <nameref/>
</>
<idtransaction-manager>
   <>
      <namepropagation/>
      <namepropagation/>
      <namepropagation/>
      <namepropagation/>
      <namepropagation/>
      <namepropagation/>
      <namepropagation/>
      <namepropagationread-only/>
      <namepropagationread-only/>
      <namepropagationread-only/>
      </>
</>
<>
   <pointcutadvice-ref/>
</>

<idclass/>
<>
   <pointcutadvice-ref/>
</>
com.flzc.user.aop;

org.slf4j.Logger;
org.springframework.aop.AfterReturningAdvice;
org.springframework.aop.MethodBeforeAdvice;
org.springframework.aop.ThrowsAdvice;

java.lang.reflect.Method;

DataSourceAdvice MethodBeforeAdvice, AfterReturningAdvice, ThrowsAdvice {

   Logger  = org.slf4j.LoggerFactory.(DataSourceAdvice.);
   
   before(Method method, Object[] args, Object target) Throwable {
      .info(+ target.().getName() + + method.getName() + );
      (method.getName().startsWith() || method.getName().startsWith()
            || method.getName().startsWith() || method.getName().startsWith()
            || method.getName().startsWith() || method.getName().startsWith()
            || method.getName().startsWith()) {
         DataSourceSwitcher.();
         .info();
      } {
         DataSourceSwitcher.();
         .info();
      }
   }

   afterReturning(Object arg0, Method method, Object[] args, Object target) Throwable {
      .info(+ target.().getName() + + method.getName() + );

      }

   afterThrowing(Method method, Object[] args, Object target, Exception ex) Throwable {
      DataSourceSwitcher.();
      .error();
   }

}


spring 数据源动态切换 与dubbo服务

标签:

原文地址:http://my.oschina.net/mrXhuangyang/blog/500743

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!