划水。。。
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 applicationrunner commandlinerunner springboot postconstruct springboot application springboot顺序 文件 applicationrunner springboot组件 顺序