Spring的初始化过程
Spring 的几个接口
1.InitializingBean接口,在初始化Bean时容器会调用前者的????<bean id="javaBean" class="com.test.JavaBean" init-method="init"> ????????<property name="name" value="zhjb"></property> 运行结果如下: 加载Spring配置文件 ? 从结果进行分析,Bean的初始化顺序应该是 1.构造函数 2.初始化属性 3.如果实现了BeanFactoryAware 接口执行setBeanFactory方法 4..如果实现了InitializingBean 接口执行afterPropertiesSet方法 5.如果在配置文件中指定了init-method,那么执行该方法 6..如果实现了BeanFactoryPostProcessor 接口在 “new”其他类之前执行 postProcessBeanFactory 方法(通过这个方法可以改变配置文件里面的属性值的配置) 7.如果实现了BeanFactoryPostProcessor 接口,那么会在其他bean初始化方法之前执行postProcessBeforeInitialization 方法,之后执行postProcessAfterInitialization方法 感觉奇怪的地方就是没有执行destroy方法,目前还不知道原因在什么地方
JavaBean类构造方法
JavaBean类setName 方法
BeanFactoryAware 接口 setBeanFactory方法
InitializingBean 接口 afterPropertiesSet方法
JavaBean类init 方法
BeanFactoryPostProcessor 接口 postProcessBeanFactory 方法
User类构造方法
User类 setName方法
user:BeanPostProcessor 接口 postProcessBeforeInitialization 方法
User类init 方法
user:BeanPostProcessor 接口 postProcessAfterInitialization方法
加载Spring配置文件结束
获取name属性:zhjb
程序结束