在大大小小的项目中,或许都能看到 @PostConstruct
注解,我一直以为是 Spring 的注解。昨天刚好有空,就特意看了下导入的类来源,没想到啊,它竟然是 Java 的注解
import javax.annotation.PostConstruct;
@PostConstruct
注解的作用,就是补充执行对象的初始化工作。
准确的说就是: @PostConstruct
用于修饰一个 非静态的 void
方法,该方法会在服务器加载 Servlet 的时候执行,而且只会执行一次。执行的时机是在构造函数方法之后,init() 方法之前。
如果算上 @Autowired
依赖注入注解,那么执行顺序如下
Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
例如下面的实例
package com.haoshuashua.springboot.demo; import com.example.studySpringBoot.service.MyMethorClassService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; @Component public class Demo { private static Demo staticInstance = new Demo(); @Autowired private OtherClassService otherService; @PostConstruct public void init(){ staticInstance.otherService = myService; } public static Integer invokeBean(){ return staticInstance.otherService.add(10,20); } }
目前尚无回复