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