Spring生命周期源码分析

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 ()

案列分析(未完待续)

你可能感兴趣的:(Spring生命周期源码分析)