您的位置:首页 > 编程语言 > Java开发

Spring之Bean在BeanFactory的生命周期

2016-10-06 12:19 253 查看

Bean在BeanFactory中的生命周期如图所示:



关于Bean的生命周期中几个接口:

bean中关于生命周期的接口可以分为两类,一类是容器级的生命周期接口,用于对bean的共性的设置。一类是bean级的生命周期接口,用于bean的个性的设置。其中,容器及的生命周期接口包括:InstantiationAwareBeanPostProcessor、BeanPostProcessor。Bean级生命周期接口包括:BeanNameAware、BeanFactoryAware、InitializingBean。

容器级生命周期接口:

InstantiationAwareBeanPostProcessor

它包含三个方法。

1)postProcessBeforeInstantiation():用于在实例化bean之前调用的方法。

2)postProcessAfterInstantiation():对应于第一个方法,用在实例化bean之后调用的方法。

3)postProcessPropertyValues():在调用bean的set方法设置属性之前设置的方法,可以用来初始的bean的共性属性。

BeanPostProcessor

它包含两个方法。

1)postProcessBeforeInitialization():在bean初始化之前执行的方法。

2)postProcessAfterInitialization():在bean初始化之后的执行方法,与第一个方法想对应。

Bean级生命周期接口:

BeanNameAware:

setBeanName()方法用于设置bean的名称。

BeanFactoryAware:

setBeanFactory()方法用于设置bean所属的beanFactory。

IntializingBean:

afterPropertiesSet()方法:在bean设置完属性后,可以对其属性进行再次的更改。

总结

在BeanFactory中bean的生命周期开始于getBean方法,其中关于生命周期的接口是可选的,如果你都不实现上述的接口,那么bean生命周期最简洁的方式就是:1、调用getBean方法,开始生命周期。2、利用java发射机制调用bean的无参构造函数实例化bean。3、设置bean的名称。4设置bean所属的BeanFactory。5、如果有init-method方法,则调用。没有则不调用。6、根据bean是否是单例:若是单例则生命周期交给BeanFactory管理,若不是单例模式,则交给bean的调用者管理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息