我想写下与@PostConstruct 一起使用的方法的名称。但是我发现 AOP 无法“绕过” PostConstruct 方法。
有没有办法将 AOP 与 PostConstruct 方法一起使用?
最佳答案
试试这个。
@Around("@annotation(javax.annotation.PostConstruct)")
public void myAdvice(ProceedingJoinPoint jp) throws Throwable{
System.out.println("This is before " + jp.getSignature().getName() + "()");
jp.proceed();
}
此外,您需要激活编译时编织。我在 github 上发布了一个使用 maven 的 Demo 项目。克隆 https://github.com/jannikweichert/PostConstructAOPDemo 并执行
mvn clean compile spring-boot:run
之后你应该在 Sysout 中看到:
This is before test()
test() is executed
享受!
关于Spring AOP 和后构造,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34632051/