私はSpring 4.2プロジェクトの中にたくさんのクラスを持っています。 @Xyzアノテーションをすべてアノテーションしています。 AspectJのドキュメントによると、Spring AspectJ内で "declare"命令を使用するには?
declare @type : x.y.z.* : @Xyz;
命令で実行できます。 しかし、私はそれをどこに置くべきかわからない。
私はSpring 4.2プロジェクトの中にたくさんのクラスを持っています。 @Xyzアノテーションをすべてアノテーションしています。 AspectJのドキュメントによると、Spring AspectJ内で "declare"命令を使用するには?
declare @type : x.y.z.* : @Xyz;
命令で実行できます。 しかし、私はそれをどこに置くべきかわからない。
私は私の側でいくつかのテストを行い、いくつかの苦労した後、私は具体的な実装を探しました。残念ながら、@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() {}
}
が見えます。 '@AspectパブリッククラスAnnotationAspect {@DeclareAnnotation( "x.y.z. +") @JsonIgnoreProperties(ignoreUnknown =真)は、任意の瞬間にオブジェクトしよう。 } ' –
私は、適用された属性ではなく、注釈値だけによって支配されることを確認します。まだビルド.. –
いいえ - 運がいいです。 ' < beanのid = "annotationAspect" class = "xyzAnnotationAspect" /> –