有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在SpringAspectJ中使用“declare”指令?

在Spring4.2项目中,我有很多课程。 我想用@Xyz注释对它们进行注释。根据AspectJ文档,它可以由

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

指示。 但我不知道该把它放在哪里


共 (1) 个答案

  1. # 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注释创建一个新的方面:

    @Aspect
    public class XyzAspect {
    
        @DeclareAnnotation("x.y.z.*")
        @Xyz class XyzClass {}
    
        @DeclareAnnotation("x.y.z.MyClass.*(..)")
        @Xyz void xyzMethod() {}
    }