2017-02-14 8 views
0

プロパティファイルから読み取った値に応じてAspectを条件付きで作成します。 (それはプロファイリングに関連しているので、意図した選択的な使用です)。@条件付き@Aspectの使用

私はConditionので、私は必要な検証を実行し、それを有効または無効に、対応するBooleanへの出力を設定することができるようになるmatches()メソッドを実装するクラスを作成しようとしました。

@Aspect 
@Conditional(MyCondition.class) 
public class MyAspect { 
... 
pointCuts, methods and etc... 
... 
} 

事は次のとおりです。Aspectはとにかくどうやらそれは@Conditional注釈出力を尊重していない春によってインスタンス化されます。

私はここで欠けている警告がありますか?

バージョン:

Spring version: 4.1.4.RELEASE 

AspectJ version: 1.7.3 

(「複雑な」プロジェクトの依存関係ツリーは少しので、LIBSの更新は塩の粒:)で注意しなければならない)

+1

それは 'Aspect' @とではありませんが、' Component' @ ..だから、それはおそらく、スキャンされていない、とあなたも注釈処理が存在していない可能性があります。 –

答えて

1

あなたが条件をachiveために管理することができ@EnableAspectJAutoProxy設定で説明されているように、コンポーネントとしてアスペクトを登録する場合はAspect Behaviourです。ドキュメントから

はSpringのXML要素で見られる機能に似てAspectJのの@Aspect注釈でマークされたコンポーネントを処理するためのサポートを有効にします。 @Configurationで使用する場合

@Aspect beansは、他ののようにコンポーネントスキャンすることができます。

@そのBeanに@Componentを追加し、必要に応じて適切なコンポーネントスキャンを設定するだけで問題を解決する必要があります。例えば

@Aspect 
@Component 
@Conditional(MyCondition.class) 
public class MyAspect { 
... 
pointCuts, methods and etc... 
... 
}