java - 父类(super class)上的 PostConstruct 注释

标签 java spring postconstruct

我想在我所有 Controller 的公共(public)类中重构一个用 @PostContruct 注释的方法。

public abstract class Controller {
    @PostConstruct
    protected void PostContruct() { ..}
}

public class AuthController extends Controller {}

public class CartController extends Controller {}

但是spring似乎没有调用我的继承方法。在这种情况下使用什么模式?

最佳答案

这适用于 Spring 4.2.0 和 Spring Boot 1.2.5

public abstract class AbstractController {
    @PostConstruct
    protected void postConstruct() {
        System.out.println("post construct");
    }
}

@Controller
public class ConcreteController extends AbstractController {

}

如果您将该方法标记为抽象,将 @PostConstruct 保留在父级中并在子级中实现它,它也可以工作。

如果 @Controller 在父级中,它不起作用

关于java - 父类(super class)上的 PostConstruct 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32007471/

相关文章:

spring - @PostConstruct 和在配置类中使用 new 创建的 bean

java - 获取“当尝试替换字符串中的字符时

java - Spring Inject注解导致空指针异常

jsf - 根据每个请求构建 ViewScoped bean……第 99 部分

java - Spring 方面记录器

java - @Retryable 在 Spring Boot 应用程序中由集成测试触发时不重试

jsf-2 - 在每个 View 上调用 session 作用域 bean 方法

java - 什么是 SwingUtilities.invokeLater(new Runnable())

Java 地理工具 : how to find distance from a point to closest polygon in shape file

java - 如何在tomcat中获取webapp的工作目录?