neweastsun 2020-02-26
Spring Bean 的初始化流程如下:
实例化 Bean 对象
Spring 容器根据配置中的 Bean Definition(定义)中实例化 Bean 对象。
Bean Definition 可以通过 XML,Java 注解或 Java Config 代码提供。
Spring 使用依赖注入填充所有属性,如 Bean 中所定义的配置。
#setBeanName(String name)
方法。#setBeanFactory(BeanFactory beanFactory)
方法。#preProcessBeforeInitialization(Object bean, String beanName)
方法。#afterPropertiesSet()
方法。<bean />
的 init-method
属性),那么将调用该方法。#postProcessAfterInitialization(Object bean, String beanName)
方法。Spring Bean 的销毁流程如下:
#destroy()
方法。<bean />
的 destroy-method
属性),那么将调用该方法。整体如下图:
Spring实现Aware接口 https://www.jianshu.com/p/7ce88398cf78
InitializingBean的作用 https://blog.csdn.net/maclaren001/article/details/37039749
Spring 的 BeanPostProcessor 原理剖析及使用 https://www.jianshu.com/p/58d2bddcb871
写代码简单比较init-method,afterPropertiesSet和BeanPostProcessor https://www.2cto.com/kf/201310/251778.html