定义:
@PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
代码:
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class TestController {
@PostConstruct
void init() {
System.out.println("~~~~~~~~~~~~~~~~初始化加载~~~~~~~~~~~~~");
}
}
源码加载分析
首先,JVM在加载阶段通过类的全路径找到该类并把类的信息加载到JVM的方法区,然后在堆区实例化有关java.lang.Class对象,作为方法区中这个类的信息的入口;然后在连接阶段,为类的静态变量logClinet分配内存并赋予JVM默认初始值null;因为注解@PostConstruct的缘故,在类初始化之前会先加载该使用该注解的方法;然后再执行类的初始化。
注:
构造方法 ——> @Autowired —— > @PostConstruct ——> 静态方法 (按此顺序加载)