文章字数:316,阅读全文大约需要1分钟
创建–》初始化(赋值)–》销毁
设置初始化和销毁调用函数
1
| @Bean(initMethod="init", destroyMethod="destroy")
|
继承接口也可以实现初始化和销毁
1 2 3
| public class Train implements InitializingBean, DisposableBean{ //... }
|
JSR250规范方式
1 2 3 4 5 6 7
| @PostConstruct public void init() { }
@PreDestroy public void destory(){ }
|
BeanPostProcessorsr
- 后处理器
1 2 3
| public class MyBeanPostProcessor implements BeanPostProcessor{ }
|
- 把bean封装成wrappedBean
- 首先创建并初始化容器相关的processor(大部分Spring的注解都对应一个BeanPostProcessor),遍历
Spring
所有的处理器,调用processor的初始化方法
- bean赋值,注入其他组件,生命周期等功能都是这样实现的
容器启动过程
启动加载配置类-》refresh()->finishBeanFactoryInitialization()->getBean()->doCreateBean()->beanWrapper(对象创建)-》populated(属性赋值)->inializate()->processors