Java - @PostConstruct注解 - 依赖注入完成后初始化

前言

@PostConstructJava 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(注释的方法)

- End -
梦想是咸鱼
关注一下吧
posted @ 2021-08-26 11:35  Maggieq8324  阅读(532)  评论(0编辑  收藏  举报