2017-05-05 2 views
0

私はSpring 4.2プロジェクトの中にたくさんのクラスを持っています。 @Xyzアノテーションをすべてアノテーションしています。 AspectJのドキュメントによると、Spring AspectJ内で "declare"命令を使用するには?

declare @type : x.y.z.* : @Xyz; 

命令で実行できます。 しかし、私はそれをどこに置くべきかわからない。

答えて

1

私は私の側でいくつかのテストを行い、いくつかの苦労した後、私は具体的な実装を探しました。残念ながら、@DeclareAnnotationは存在しますが実装されていません。

ここで確認できます。 https://github.com/eclipse/org.aspectj/blob/V1_8_9/docs/adk15ProgGuideDB/ataspectj.xml#L1017

バージョン1.5.3で登場したアノテーションが実装されていると思いました。私の悪い。


オリジナルの回答(動作していない、AspectJ v1.8.9)。

まず、設定でAspectJを有効にする必要があります。たとえば、Java構成:

@Configuration 
@EnableAspectJAutoProxy 
public class AopConfiguration {} 

は、その後、あなたは@DeclareAnnotation注釈を持つ新たな一面を作成します。私はクラスを目指していながら、それは_xyzMethod_を対象よう

@Aspect 
public class XyzAspect { 

    @DeclareAnnotation("x.y.z.*") 
    @Xyz class XyzClass {} 

    @DeclareAnnotation("x.y.z.MyClass.*(..)") 
    @Xyz void xyzMethod() {} 
} 
+0

が見えます。 '@AspectパブリッククラスAnnotationAspect {@DeclareAnnotation( "x.y.z. +") @JsonIgnoreProperties(ignoreUnknown =真)は、任意の瞬間にオブジェクトしよう。 } ' –

+0

私は、適用された属性ではなく、注釈値だけによって支配されることを確認します。まだビルド.. –

+0

いいえ - 運がいいです。 ' < beanのid = "annotationAspect" class = "xyzAnnotationAspect" /> –

関連する問題