@PostConstruct 和@ PreDestroy 注解
1、简介
Spring 允许我们在 Bean 的创建和销毁时执行自定义操作。例如,可以让 Bean 实现 InitializingBean
和 DisposableBean
接口,从而在创建和销毁时触发回调方法。
本文将带你了解第二种实现方式,即使用 @PostConstruct
和 @PreDestroy
注解。
2、@PostConstruct
Spring 只会在 Bean 属性初始化后调用一次注解了 @PostConstruct
的方法。即使没有任何属性需要初始化,这些方法也会运行。
使用 @PostConstruct
注解的方法可以用任何访问级别,但不能是静态的。
3、@PreDestroy
在 Spring 将 Bean 从 Application Context 中删除之前,会运行一次注解了 @PreDestroy
的方法。
与 @PostConstruct
一样,注解为 @PreDestroy
的方法可以有任何访问级别,但不能是静态的
4、用 javax.annotation 还是 jakarta.annotation?
从 JDK 6 到 JDK 8,@PostConstruct
和 @PreDestroy
注解是标准 Java 库中 javax.annotation
包的一部分。但是,从 JDK 9 开始,整个 javax.annotation
包从核心 Java 模块中移除,并在 JDK 11 中完全取消。在 Jakarta EE 9 中,该包被重新命名为 jakarta.annotation
。
因此,到底应该使用 javax.annotation
还是 jakarta annotation
的注解?这取决于使用的 Spring 版本。
Spring、JDK、javax 和 jakarta 命名空间之间的兼容性如下表:
本文链接:
/archives/1727160215689
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
落叶知秋!
喜欢就支持一下吧