Spring容器管理Bean的生命周期

我们可以自定义初始化和销毁方法,容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法。

生命周期:bean创建---初始化---销毁

构造(对象创建)

单实例:在容器启动的时候创建对象

多实例:在每次获取bean的时候创建对象

初始化

对象创建完成,并赋值好,调用初始化方法。

销毁

单实例:容器关闭的时候

多实例:容器不会管理这个bean,容器不会调用销毁方法。

 

1)指定初始化和销毁的方法:

通过@Bean指定init-methord和destory-methord;

2)通过让Bean实现InitializingBean(定义初始化逻辑),DisposableBean(定义销毁逻辑)

3)可以使用JSR250;

@PostConstruct : 在bean创建完成并且属性赋值完成,来执行初始化方法

@PreDestory : 在容器销毁bean之前通知我们进行清理工作

4)BeanPostProcessor 是bean的后置处理器,BeanPostProcessor 是一个接口,其中有俩方法postProcessBeforeInitialization和postProcessAfterInitialization,这俩方法是在Spring容器中的bean初始化前后执行,所以Spring容器中的每个bean对象初始化前后,都会执行BeanPostProcessor接口的实现类中的这俩方法。

 

在bean初始化前后进行一些处理工作:

postProcessBeforeInitialization: 在bean初始化前工作,这个方法会在bean实例化和属性设置之后,自定义初始化方法之前被调用。

postProcessAfterInitialization : 在bean初始化后工作,这个方法自定义初始化方法之后被调用。

BeanPostProcessor 作用:

后置处理器BeanPostProcessor 可用于bean对象初始化前后进行逻辑增强。Spring提供了BeanPostProcessor 接口的很多实现类,如AutowiredAnnotationBeanProcessor用于@Autowired 注解的实现,AnnotationAwareAspectJProxyCreator用于Spring AOP的动态代理等等。

posted @ 2021-01-24 18:31  是倩倩不是欠欠  阅读(98)  评论(0编辑  收藏  举报