Spring Bean 的生命周期

1.实例化一个 Bean, 也就是我们常说的 new

 

2.按照Spring上下文对实例化的Bean进行配置,也就是 IOC 注入。

 

3.如果这个Bean实现了 BeanNameAware 接口,会调用它实现的 setBeanName(String beanId) 方法,此处传递的是Spring配置文件中Bean的 ID

 

4.如果这个Bean实现了 BeanFactoryAware 接口,会调用它实现的 setBeanFactory() 传递的是 Spring 工厂本身(可以使用这个方法获得其他Bean)。

 

5.如果这个Bean实现了 ApplicationContextAware 接口,会调用 setApplicationContext(ApplicationContext() 方法,该方法同样可以实现步骤4,但比步骤4更好,因为 Application BeanFactory 的子接口,有更多的实现方法。

 

6.如果这个Bean关联了 BeanPostProcessor 接口,将会调用postProcessBeforeInitialization(Object obj, String s)方法,BeanPostProcess 经常被用作是Bean内容的更改,并且由于这个是在Bean初始化结束时调用 afte() 方法)。

 

7.如果这个Bean在Spring配置文件中配置了 init-method 属性会自动调用其配置的初始化方法。

 

8.如果这个 Bean 关联了 BeanPostProcess 接口,将会调用 postAfterInitialization(Object obj, String s) 方法。

    注意:以上工作完成后就可以使用这个Bean了,那这个Bean是一个 single 的,所以一般情况下我们调用同一个ID的Bean会是在内容地址相同的实例。

 

9.当Bean不再需要的时候,会经过清理阶段,如果Bean实现了 DisposableBean 接口,会调用其实现的 destroy() 方法。

 

10.最后,如果这个Bean的Spring配置中配置了 destroy-method 属性,会自动调用其配置的销毁方法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值