【发布时间】:2020-05-16 01:15:48
【问题描述】:
我有一个类级别的注释
@Dummy(value = 123)
我如何创建一个方面,该方面会被调用before 这个带注释的类的任何方法执行。我只想在方面的建议中打印注释的值。
【问题讨论】:
标签: spring spring-boot spring-aop
我有一个类级别的注释
@Dummy(value = 123)
我如何创建一个方面,该方面会被调用before 这个带注释的类的任何方法执行。我只想在方面的建议中打印注释的值。
【问题讨论】:
标签: spring spring-boot spring-aop
以下方面将达到相同的效果
@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 详细了解指示符。
【讨论】:
(com..*) 表示任何 com 包或其所有直接子包中的任何类型。 ..* 需要一个根包(在我们的示例中为 com )才能使其成为有效的包引用。