Spring的生命周期

spring的生命周期:

1.Bean的建立

 由BeanFactory读取Bean定义文件,并生成各个实例

如果是默认的单例模式,那么在加载spring的配置文件的时候,会将bean实例化,放进Spring的IOC容器中。

可以利用无参构造函数追踪实例化时机。

2.设置属性(属性注入) 

注入属性值,对应的属性需要有set方法

值加载spring配置文件时,会实例化User对象,在调用无参构造方法实例化对象后,紧接着调用了setUserName方法,为userName属性注入值

3.BeanNameAware接口的setBeanName(): 

可以获取正在被实例化的bean的id的值

配置文件中有几个User类型的bean,就会打印几个id值

4.BeanFactoryAware的setBeanFactory(): 

如果Bean实现BeanFactoryAware接口,则执行setBeanFactory(),可以获取到beanFactory,即bean工厂。我们可以清晰的看到bean工厂中的所有bean。

5.ApplicationContextAware接口: 

ApplicationContextAware接口获取ApplicationContext。

User类实现了接口ApplicationContextAware并复写了setApplicationContext方法。Spring初始化的时候就将ApplicationContext装配好了,那么项目中就可以直接使用applicationContext.getBean(“beanId”);

6.BeanPostProcessor的processBeforeInitialization(): 

BeanPostProcessor(后置处理器)接口作用是: 

如果我们需要在Spring容器完成Bean的实例化、配置和其他的初始化前后添加一些自己的逻辑处理,我们就可以定义一个或者多个BeanPostProcessor接口的实现,然后注册到容器中。

如果有任何BeanPostProcessors实例与Bean实例关联,则执行BeanPostProcessors实例processBeforeInitialization()

7.Bean定义文件中定义init-method初始化:

8.BeanPostProcessors的processaAfterInitialization(): 

Spring在设置完一个bean所有的合作者后,会检查bean是否实现了InitializingBean接口,如果实现就调用bean的afterPropertiesSet方法。

9.DisposableBean的destroy(): bean销毁。在容器关闭时,如果Bean类实现DisposableBean接口,则执行destroy()。

简单总结:1.bean创建,创建构造函数构造对象(beanfactorypostprocessors),2.装配属性,为属性赋值,3.回调(容器-控制类和组件-回调类),4.初始化init-method,5.就绪,6.销毁destory-method

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值