SpringBoot中常用类执行顺序
步骤
-
bean注册:BeanDefinitionRegistryPostProcessor
对Bean定义的注册过程进行干预和定制,主要用于在bean定义之前修改、删除处理。 -
bean定义扩展:BeanFactoryPostProcessor
对已经实例化的bean进行再次处理和修改,返回新定义的对象。 -
构造器注入:有参构造器/无参构造器
-
@Value、@Autowired注入属性:AutowiredAnnotationBeanPostProcessor
-
属性填充:根据名称注入/类型注入 - popluateBean方法
-
bean初始化前:BeanPostProcessor.postProcessBeforeInitialization
-
@PostConstruct:留给使用者后门执行,但是需要确保所有的依赖都已经注入。
-
InitializingBean.afterPropertiesSet方法:我们自定义的类A实现InitializingBean接口,需要实现afterPropertiesSet方法,会注入我们自定义的类A,然后执行afterPropertiesSet方法。
-
init-method:invokeInitMethods方法
-
bean初始化后:BeanPostProcessor.postProcessAfterInitialization