SpringBoot的Bean的启动加载顺序

描述

当SpringBoot中一个实例bean被加载到容器中,他的一些方法的执行顺序,如:Aware中的相关方法,构造方法,SpringBoot设置的初始化方法还有@PostConstruct注解的方法。Spring中的相关方法的执行顺序是按照Bean的生命周期来进行执行的,这里验证几个比较常用的方法。

验证

首先SpringBoot对Bean进行实例化调用构造函数,然后springboot会调用Aware的方法执行比如setBeanName,setBeanFactory。然后调用@PostConstruct的注解方法,最后调用SpringBoot配置的初始化方法。

public class Test2ServerImpl implements BeanNameAware, BeanFactoryAware, BeanPostProcessor {

     @PostConstruct
     public void init() {
         System.out.println("Test2ServerImpl的@PostConstruct调用");
      }

    @Override
    public void setBeanName(String s) {
        System.out.println(s + "setBeanName的方法执行");
    }

    public void springInit() {
        System.out.println("springInit的方法执行");
    }

    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
        System.out.println("Test2ServerImpl调用了setBeanFactory方法");
    }

    public Test2ServerImpl(){
        System.out.println("Test2ServerImpl 构造方法执行");
    }
}

运行结果
SpringBoot的Bean的启动加载顺序_第1张图片

你可能感兴趣的:(java,spring,boot)