======== 后置处理 ======== Spring工厂通过BeanPostProcessor对其所创建的对象进行再加工。 BeanPostProcessor是一个接口,实现其中的方法,在方法的实现代码中编写加工对象的代码。 | v 构造方法(反射) | v Set方法(注入) | v postProcessBeforeInitialization方法(BeanPostProcessor)<- 初始化前的加工 | v afterPropertiesSet方法(InitializingBean) | v 自定义初始化方法(init-method) | v postProcessAfterInitialization方法(BeanPostProcessor)<- 初始化后的加工 | v 存活 | v destroy方法(DisposableBean) | v 自定义销毁方法(destroy-method) | v class ... implements BeanPostProcessor { ... 对象 对象ID | | // 初始化之前调用 v v Object postProcessBeforeInitialization(Object bean, String beanName) { 加工处理 return bean; // 返回加工处理后的对象 } ... 对象 对象ID | | // 初始化之后调用 v v Object postProcessAfterInitialization(Object bean, String beanName) { 加工处理 return bean; // 返回加工处理后的对象 } ... } 实战中很少处理初始化操作,无需区分Before和After,通常只在After中实现加工处理,Before只要原封不动地返回第一个参数即可。