Bean的作用域
singleton:组件在容器中以单例的形式存在。组件默认的作用域就是singleton。最常用的
prototype:原型。每一次取出都是一个全新的组件,每一次取出都实例化
注册组件
通过查看内存地址判断是否为同一实例,这里看出prototype每次取出的都不是同一个组件
生命周期
什么是生命周期,为什么要使用生命周期?
容器中的组件的生命,产生开始到容器关闭时候经过哪一些方法?
容器中的组件要到达一个可用状态,可以依赖注入了(可以从容器中取出了)
最终是要使用组件(对象)提供的方法
通过以下方法是让组件本身知道自己是啥,如果想让组件知道的话就得实现这些接口
Aware接口
★BeanPostProcessor接口
给容器中所有的组件通用的增加了before和after两个方法
生命周期这一块挺复杂的,我先忙别的,,,有空再回来填坑吧
生命周期的方法是否一定都执行到:不一定
为什么还要提供呢:在准备阶段提供这些方法能够执行到,提供不同的参数,这些方法之间存在先后顺序
Scope对生命周期的影响
singleton:生命周期在容器初始化开始(立即加载)
protoype:获得组件的时候才开始生命期,没有destroy