请描述一下Spring Bean的生命周期?
qiuqiuqiushi:
总体来说分为实例化、属性注入、初始化、销毁这几个步骤:具体如下
1. 解析xml配置或者注解的类,得到BeanDefinition,通过BeanDefinition反射创建Bean对象。
2. 对Bean对象进行属性填充
3. 回调实现Aware接口的方法,比如BeanNameAware
4. 调用BeanPostProcessor的初始化前方法,调用init初始化方法,调用BeanPostProcessor的初始化后方法,会进行AOP。
5. 将创建的Bean对象放入一个Map,业务中使用Bean对象。
6. Spring容器关闭时调用DisposableBean的destory方法。
【回复】视频没看懂 在你这看懂了
dfasri:
单纯框架解释个xml,json转一下object还搞那么多花样来包装[无语],面向对象每种对象创建销毁自定义是不错,用工厂模式输出和销毁更简单更明白,格式可以自定义更自由,还兼容这种创建销毁的模式。
API最容易理解的方式还是出口入口,花里胡哨。
爱睡の蕾芙妮。:
好 这个厉害 看了个1小时的 硬是没听懂放弃了 还是这个好简略,硬记了,也比直接说不会强[藏狐]
【回复】八股文就是这样,背了也不知道个所以然,应付面试
日月递照:
定義,
反射生成,
屬性設置,
Aware接口,
PostProcesser在init前,
init,
PostProcesser在init後,
放入Map,
使用,
destroy銷毁。
追风C功:
这个视频帮我大忙了。有些视频叽里咕噜说一堆,工作用不上,面试记不住。能够应付面试就足够了,不然被面试问到,不说原理了,连概念都说不出来很尴尬。
还会吃苹果:
如果是在prototype作用域下 bean的销毁应该不被spring处理。。。
吃藤藤菜为梦想:
精辟 看spring源码云里雾里,知道实现了这些过程,但总结不出来
【回复】源码上有注释的,比这详细,所以说还是要好好学英语
【回复】回复 @Robin丶Thicke :一大堆人吹学编程和英语关系不大
【回复】回复 @Robin丶Thicke :关键不是注释 是调用的过程 调调调一会就懵逼了[doge]
__BetterMan__:
话说面试考这个的意图是啥?看你记忆能力咋样?随便一个Java程序员都能牛逼哄哄的对底层源码夸夸其谈,话说你们为哪个框架贡献过一行代码?
【回复】回复 @追风C功 :我以前为公司面试的时候确实会问这些问题,但我现在更愿意问一些比较open的问题,去感受应聘者的逻辑思维能力,我们需要的是发现问题定位问题解决问题的能力。
【回复】其实还是有些用的,各个知识点结合在一起,融会贯通
【回复】额 初始化过程提供了很多可扩展功能啊
卑鄙宅:
这创建的是原生bean对象吗 动态代理对象什么时候创建呢
吃两碗粉只给一碗钱:
这些东西我看得头大,工作好几年了我还是不知道到底能解决什么问题。。。[捂脸]
【回复】回复 @吃两碗粉只给一碗钱 :已经毕业了 大学学的啥也不是 最近在背面试题
【回复】投其所好,面试官喜欢考什么,你背什么就完了
【回复】回复 @吃两碗粉只给一碗钱 :但是其他开发语言市场小,没记错的话java的市场占有率一直是第一,工作岗位也相对其他语言要多。培训公司培训的人大多也没什么学历,培训的人再多学历也是基本的门槛,gj对高水平人才的数量是有控制的。
纯纯的牛粪:
这个spring Bean的生命周期和 Spring的生命周期是一个东西不是?
【回复】那必然不是啊,有关系,但不是一个东西
【回复】回复 @Felix-Kuo :啊哦哦 感谢
北极熊杀手-:
还是多看源码自己debug比较好,如果多问一步,背书是答不出来的[大哭]
仙法_木遁真数千手:
看完源码解剖视频 然后看了这个视频 犹如吃太饱打了个嗝[藏狐][藏狐][藏狐]