如何在 Spring AspectJ 中使用 "declare" 指令?
How to use "declare" instruction within Spring AspectJ?
我在 Spring 4.2 项目中有一堆 类。
我想让所有这些都用@Xyz 注释进行注释。根据 AspectJ 文档,可以通过
完成
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
注释创建一个新方面 :
@Aspect
public class XyzAspect {
@DeclareAnnotation("x.y.z.*")
@Xyz class XyzClass {}
@DeclareAnnotation("x.y.z.MyClass.*(..)")
@Xyz void xyzMethod() {}
}
我在 Spring 4.2 项目中有一堆 类。 我想让所有这些都用@Xyz 注释进行注释。根据 AspectJ 文档,可以通过
完成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
注释创建一个新方面 :
@Aspect
public class XyzAspect {
@DeclareAnnotation("x.y.z.*")
@Xyz class XyzClass {}
@DeclareAnnotation("x.y.z.MyClass.*(..)")
@Xyz void xyzMethod() {}
}