【发布时间】:2021-02-18 05:31:18
【问题描述】:
我正在此站点上阅读有关 @PostConstruct 的文档:https://www.baeldung.com/spring-postconstruct-predestroy
是这样写的:
使用@PostConstruct 注解的方法可以有任何访问级别,但 它不能是静态的。
谁能告诉我为什么用这个注解注解的方法不能是静态的?
【问题讨论】:
-
Spring 类默认是单例的,所以只有 1 个实例,没有区别,没有 static 关键字它实际上是静态的。 spring 使用的实际类将是您指定的类周围的代理。
-
@EssexBoy 它让世界变得与众不同。
static方法不能访问实例变量,这在@PostConstruct方法中经常使用。如果 bean 具有像请求或会话这样的范围,也会导致问题,因为static将在类级别而不是实例级别。
标签: java spring spring-boot postconstruct