如何在Spring AspectJ中使用“声明”指令?

时间:2017-05-05 12:55:50

标签: java spring annotations aspectj

我在Spring 4.2项目中有很多类。 我想用@Xyz注释注释所有这些注释。根据AspectJ文档,可以通过

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

指令。 但我不知道在哪里放置它。

1 个答案:

答案 0 :(得分:2)

我在我身边做了一些测试,经过一番努力,我找到了具体的实施方案。遗憾的是,@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() {}
}