Spring框架学习之Bean的生命周期

Bean的整个生命周期

“(scope=”singleton”)”
  1. 实例化–(new ApplicationContext对象时或者工厂模式中调用getBean(“ClassName”)时,调用无参构造函数,也可以在bean的配置文件中设置factory-method方法指定其他构造函数)
  2. 设置属性–(调用set方法设置bean属性值)
  3. 调用BeanNameAware的setBeanName()方法–(这是个接口,若实现它的setBeanName方法则可以获得它的参数,这个参数代表当前正在调用的bean的id值)
  4. 调用BeanFactoryAware的setBeanFactory() 方法–(这是个接口,若实现它的setBeanFactory方法则可以获得它的参数,这个参数代表BeanFactory)
  5. 调用ApplicationContextAware的setApplicationContext() 方法–(这是个接口,若实现它的setApplicationContext方法则可以获得它的参数,这个参数代表ApplicationContext)
  6. 调用BeanPostProcessor(后置处理器)的预初始化方法(before)–(创建一个类实现BeanPostProcessor接口,实现两个方法,在xml配置bean id和class即可,则每创建一个bean对象时就会通过一次BeanPostProcessor的两个实现方法postProcessBeforeInitialization,postProcessAfterInitialization,这里可以实现对对象的统一管理,面向切面编程思想(AOP))
    注意:在调用before之后不会立即调用after方法,中间还有以下两个操作7和8
  7. 调用InitilizingBean的afterPropertiesSet()方法–(这是个接口,实现它的afterPropertiesSet方法)
  8. 调用定制的初始化方法–(在bean的配置文件中加上属性init-method=”init”,在bean的类中实现init方法,则此处会调用)
  9. 调用BeanFostProcessor的后初始化方法(postProcessAfterInitialization)
  10. bean可以使用了
  11. 容器关闭
  12. 调用DisposaleBean的destory()方法–(这是一个接口,bean类中实现它的destory()方法)
  13. 调用定制的销毁方法–(在bean的配置文件中添加属性destory-method=”funcName”,类中实现funcName方法即可实现销毁方法)
一般开发中的操作可能只有1,2,6,9,10,11

!注意:在工厂模式下获取应用上下文时生命周期中没有5,6,9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值