注釈データのソースを取得するためのAOP動的切り替え方法

 

注釈データのソースを取得するためのAOP動的切り替え方法

 

(式@Order(1)アクション:

春は、我々はAOPインターセプトを書いたとき、前のトランザクション場合、例えば、トランザクションAOPバネの実行順序とデータソースをデータソースの動的切り替えの問題を問題に遭遇し、達成するためにAOPでトランザクション内にありますスイッチの後、スイッチの障害は、データソースにつながるので、私たちは、注文(ソート)キーワードを使用していました。)

@Order(1 
@Aspect 
@Repository 
パブリック クラスDataSourceAspect { 

    @Pointcut( "実行(* com.xxx.service.impl。*。*(..))" 、プライベート ボイドanyMethod(){} 

    @AfterReturning(値 = = "結果"を返す"anyMethod()" 公共 ボイドafterReturning(ジョインポイントジョインポイント、オブジェクト結果){ 
        DataSourceHolder.clearDataSourceType()。
    } 

    @Before(値 = "anyMethod()" 公共 ボイド(ジョインポイントジョインポイント)前{ 
     // 通过切点对象获取当前切点所在的方法对象 MethodSignature MethodSignature
= (MethodSignature)joinPoint.getSignature() メソッド、メソッド = methodSignature.getMethod(); // メソッド本体データソース注釈を使用する場合 IF(Method.isAnnotationPresent(データソース。クラス)){ // 上のプロセスを取得します注釈があった データソースデータソース= method.getAnnotation(データソースクラス); // DataSourceHolderクラスに保持部材注釈データソースの方法に与えられた値 DataSourceHolder.setDataSourceType(datasource.value()); } } }

 

おすすめ

転載: www.cnblogs.com/libin6505/p/11227267.html