我正在使用 spring 应用程序,有时会使用@PostConstruct
用于代码和测试中的设置
看来注释将被排除在外Java 11 https://www.baeldung.com/spring-postconstruct-predestroy:
请注意,@PostConstruct 和 @PreDestroy 注释都是 Java EE 的一部分。由于 Java EE 已在 Java 9 中弃用并在 Java 11 中删除,我们必须添加额外的依赖项才能使用这些注释
Article https://better-coding.com/spring-postconstruct-and-predestroy-alternatives-in-java-9/建议全部更换@PostConstruct
with afterPropertiesSet
method
我建议您将 @PostConstruct 注释的实现更改为实现 org.springframework.beans.factory.InitializingBean 接口。
我可以在所有情况下盲目更换它吗?还是有其他考虑?
EDIT
正如 @JBNizet 所建议的,这可能不是必须或需要的,因为Spring https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-factory-lifecycle医生建议相反
我们建议你没有使用InitializingBean接口,因为它不必要地将代码耦合到 Spring。或者,我们建议使用@PostConstruct注解或指定 POJO 初始化方法。
EDIT 2
另一种选择是使用initMethod
:
通过Java配置,可以使用@Bean的initMethod属性
@Bean(initMethod = "init")
public BeanOne beanOne() {
return new BeanOne();
}
弹簧用途jakarta.annotation.PostConstruct
。作为贡献者spring-cloud-kubernetes
,我已经多次使用它并将其包含在该项目中。事实上我们赞成dropping InitializingBean
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)