划水。。。
ApplicationRunner、InitializingBean、@PostConstruct 执行顺序
InitializingBean 是 Spring 提供的一个接口,它只有一个方法 afterPropertiesSet(),该方法会在容器初始化完成后被调用。
ApplicationRunner 是 Spring Boot 提供的一个接口,它有一个方法 run(),该方法会在 Spring Boot 应用程序启动完成后被调用。
@PostConstruct 是 Java 提供的一个注解,它可以标注在方法上,该方法会在 bean 初始化完成后被调用。
执行顺序
@PostConstruct
InitializingBean#afterPropertiesSet()
ApplicationRunner#run()
代码demo
@Component
public class MyBean implements InitializingBean, ApplicationRunner {
@Override
public void afterPropertiesSet() {
System.out.println("InitializingBean#afterPropertiesSet()");
}
@Override
public void run(ApplicationArguments args) {
System.out.println("ApplicationRunner#run()");
}
@PostConstruct
public void postConstruct() {
System.out.println("@PostConstruct");
}
}
- ApplicationRunner InitializingBean PostConstruct springboot 顺序applicationrunner initializingbean postconstruct applicationrunner commandlinerunner initializingbean commandlinerunner applicationrunner initializingbean postconstruct顺序 先后 多个 initializingbean springboot java bean postconstruct springboot applicationrunner commandlinerunner springboot application springboot顺序 文件 applicationrunner initializingbean