1.加载上下文、创建bean、注入属性
获取applicationContext、调用bean的构造函数、注入属性
2.检测是否实现了xxxAware 接口
Aware 又分为 bean 、factory、application,通过这个环节手动,可以动态修改bean,三个接口操作层级不同
3.前置 BeanPostProcessor
·所有bean初始化的时候都会执行该节点
4.初始化InitializingBean
·具体bean实现 重写afterPropertiesSet(),只有实现了该接口的bean才会调用该方法
5.init-method
具体bean 声明的 init-method 方法,通过bean属性配置
6.后置(BeanPostProcessor )
·所有bean都会执行该节点
7.销毁
·DestructionAwareBeanPostProcessor 针对所有bean的销毁回调 ,配置类实现(也可以同时设置前置后置。BeanPostProcessor 有的 他都有)
·DisposableBean ,具体的bean实现
·destroy-method,具体bean声明的destroy-method(该三种方式对应3,4,5)
总结
1.初始化、XXAware 接口、初始化、销毁
2.初始化(所有bean初始化、单个bean初始化、自定义初始化)
3.销毁(所有bean销毁、单个bean销毁、自定义销毁)
4.初始化比销毁多了一个后置,BeanPostProcessor ()