- 根据配置情况调用Bean的构造函数或工厂方法,完成Bean的实例化
- 通过依赖注入完成Bean所有属性值的注入
- 如果Bean实现了BeanNameAware接口,则调用Bean的
setBeanName()方法并传入当前Bean的id
- 如果Bean实现了BeanFactoryAware接口,则调用Bean的
setBeanFactory()方法并传入当前工厂类的引用
- 如果Bean实现了ApplicationContextAware接口,则调用Bean的
setApplicationContext()方法并传入当前ApplicationContext的引用
- 如果BeanPostProcessor与Bean关联,则Spring将调用该接口的预初始化方法
postProcessBeforeInitialization()方法对Bean进行加工操作,此处非常重要,Spring的AOP就是利用这个实现的
- 如果Bean实现了InitializingBean接口,则Spring将调用
afterPropertiesSet()方法
- 如果在配置文件中通过
init-method属性指定了初始化方法,则调用该初始化方法
- 如果BeanPostProcessor与Bean关联,则Spring将调用该接口的初始化方法
postProcessAfterInitialization()方法,此时,Bean已经可以被系统使用了
- 如果在配置中指定了该Bean的作用范围为singleton,则将该Bean放入Spring IoC的缓存池中,将触发Spring对该Bean的生命周期管理;如果作用范围为prototype,则将该Bean交给调用者,由调用者管理该Bean的生命周期,Spring则不再管理该Bean
- 如果Bean实现了Disposable接口,则Spring会调用destroy()方法将Spring中的Bean销毁;如果在配置文件中通过属性destroy-method配置了Bean的销毁方法,则Spring将调用该方法对Bean进行销毁
posted @
2022-05-06 09:30
淡泊的咸鱼
阅读(
34)
评论()
收藏
举报