我想写下与@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/

10-13 04:45