Java - @PostConstruct注解 - 依赖注入完成后初始化
目录
前言
@PostConstruct
是Java EE5
中引入的,其用于需要在依赖注入完成后执行任何初始化的方法,且只会被执行一次,该注解在Java 11
中已删除,继续使用需要添加依赖项:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
关于@PostConstruct
简单例子,构造函数被调用时,Bean
尚未初始化导致空指针异常。
为什么使用@PostConstruct?
- 在构造函数中,尚未发生依赖项的注入,而在托管
Bean
中,@PostConstruct
在对象构造函数之后调用。
为什么要使用@PostConstruct由Bean初始化,而不是构造函数本身?
- 当构造函数被调用时,
Bean
尚未初始化(没有依赖项被注入),而在@PostConstruct
方法中,Bean
已完全初始化,可以使用依赖项。
@PostConstruct注解的方法在初始化中的执行顺序
Constructor
(构造方法) ->@Autowired
(依赖注入) ->@PostConstruct
(注释的方法)