Bean的生命周期
- 实例化
- 设置属性,BeanNameAware、BeanFactoryAware
- 初始化,可以通过继承InitializingBean的afterPropertySet和init-method,在初始化前后可以BeanPostProcessor的before-initialization和post-initialization处理
- 使用和注销,destory方法或DisposableBean的destory方法
BeanPostProcessor和BeanFactoryPostProcessor的区别?
BeanFacotoryPostProcessor作用于Bean实例化之前,读取或设置元数据,如scope等
BeanPostProcessor则用于在初始化前后执行一些逻辑,如缓存等
Bean的初始化或销毁的几种方式和顺序
初始化:@PostConstrrct -> InitializingBean -> init-method
销毁: @PreDestroy -> DisposableBean -> destroy-method
Bean的装配方式
- 通过xml配置
- 通过@Configuration和@Bean
- 通过自动化处理:注解扫描和@Autoware装配