亲自测试,
按照执行顺序如下:
第一种:
@Component
public class SpringContext1 {
@PostConstruct
public void pingStart(){
System.out.println(" ======================1 @PostConstruc方法开始执行==================");
}
}
第二种:
@Component
public class SpringContextUtils implements ApplicationContextAware {
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
System.out.println(" ======================2 implements ApplicationContextAware方法开始执行啦==================");
}
}
第三种(会执行多次):
@Component
public class SpringContext2 implements ApplicationListener {
@Override
public void onApplicationEvent(ApplicationEvent event) {
System.out.println(" ======================3 implements ApplicationListener方法开始执行==================");
}
}
第四种:
@Component
public class SpringContext4 implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println(" ======================4 implements ApplicationRunner==================");
}
}
第五种:
@Component
public class SpringContext3 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println(" ======================5 implements CommandLineRunner==================");
}
}