在Spring AOP中获取Class级注解值

Get Class level annotation value in Spring AOP

我有一个注释,它是 class 级别的注释

 @Dummy(value = 123)

我如何创建一个被调用的方面 before 此注释 class 的任何方法执行。我只想在方面的建议中打印注释的值。

以下方面将实现相同的效果

@Component
@Aspect
public class DummyAspect {
    @Before(value = "@target(dummy) && within(com.your.package..*)")
    public void before(JoinPoint jp, Dummy dummy) {
        System.out.println(dummy.value());
    }
}

within() - 是一个范围指示符,用于缩小要建议的 类 的范围。如果没有这个指示符,运行 可能会产生不希望的结果,因为它也可能以框架 类 为目标。

一定要通过@kriegaex 的 this answer 来详细了解指示符。

参考资料:https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#aop-pointcuts-designators