bean的初始化
1.实现 InitializingBean 接口,容器会自动调用afterPropertiesSet();
2. 指定 <bean id="typeResolver" class="" init-method=""></bean> 指定 一个方法给 init-method
如果同时指定两种,先执行第一种,后再执行第二种。建议使用第2种,代码污染小
注解:
(initMethod="",destroyMethod = "") //相当于xml int-method
@PostConstruct //在构造函数执行完成之后执行
bean的销毁
1.实现DisposableBean接口
2.指定destroy-method
注解:
@PreDestroy //在bean 销毁之前执行
指定多个bean的初始化与销毁
1.可以在<beans>中指定default-init--method 属性
例
例: class User implent InitializingBean{
void setName(){...}
void init(){...}
void afterPropertiesSet(){...}
}
Bean 后处理 是对所有的Bean进行统一处理,BeanProcessor 本身不对外提供服务,可以不设置id.容器将自动处理其中的方法
class BeanProcessor implent BeanPostProcessor{
Object postProcessBeforeInitializetion(bean,beanName){...}
Object postProcessAfterInitialization(bean,beanName){...}
}
1. 执行 User 中 setName 完依赖注入
2. 执行 BeanProcessor 中 postProcessBeforeInitializetion方法处理
3. 执行 User 中 afterPropertiesSet
4. 执行 User 中 init 配置<bean init-method="int">
5. 执行 BeanProcessor 中 postProcessAfterInitialization