java中什么东西有生命周期_【Java】Spring生命周期中有的步骤具体是干什么的?...

这里举开源中国上一篇博客为例

Bean在Spring Bean应用上下文中的生命周期 与 Bean工厂中的生命周期

生命周期里面有很多类和方法完全不知道是干什么用的,我是个本科生,理解的生命周期就是初始化完了用,用完了删掉,怎么在Spring里面弄出这么多步骤啊?不明白的步骤我都括号标出来了,谁能稍微解释一下啊?

Bean在Spring Bean应用上下文中的生命周期:

第1步、实例化

第2步、设置属性值

第3步、调用BeanNameAware的setBeanName()方法

第4步、调用BeanFactoryAware的setBeanFactory()方法(设置的BeanFactory对这个bean有什么用?)

第5步、调用ApplicationContextAware方法setApplicationContext()方法(上下文一般传给bean什么东西?能举几个例子么?)

第6步、调用BeanPostProcessor的预初始化方法(before>(预初始化和初始化有什么区别啊,能举例子说下哪些是在预初始化完成的?)

第7步、调用InitializingBean的afterPropertiesSet()方法(这个是干什么的?为什么还要有这步?)

第8步、调用定制的初始化方法

第9步、调用BeanPostProcessor的后初始化方法(after)(初始化后这步又是干什么的?)

第10步、Bean可以使用了

第11步、容器关闭(这个容器是不是ApplicationContext?什么情况下容器会关闭?)

第12步、调用DisposableBean的destory()方法

第13步、调用定制的销毁方法

Bean在Spring Bean工厂中的生命周期:

第1步、实例化

第2步、设置属性值

第3步、调用BeanNameAware的setBeanName()方法

第4步、调用BeanFactoryAware的setBeanFactory()方法

第5步、调用InitializingBean的afterPropertiesSet()方法

第6步、调用调用定制的初始化方法

第7步、Bean可以使用了

第8步、容器关闭

第9步、调用DisposableBean的destory()方法

第10步、调用定制的销毁方法

回答

大部分的看似无用部分是hook点,可以实现用户自定义功能。

BeanFactory持有Bean的定义信息,在一开始的时候通过定位Resource找到Bean的定义信息并载入和注册,让spring知道有这么个东西。然后我们通过getBean就可以获取到相应的实例了。默认scope为singleton的,这种bean在实例化过后,实例被放在一个专门的区域,以后再要用就去那里拿。

ApplicationContext接口通过集成MessageSource、ResourceLoader、ApplicatinEventPublisher接口,在BeanFactory的基础上添加了许多高级容器的特性支持,是一种功能增强版的BeanFactory。

预实例化是控制bean注入的时机,一般来说注入是在第一次getBean的时候触发的,而预实例化的Bean在Ioc容器初始化的时候就预先完成了。

如有理解错误的地方请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值