Spring 【 BeanPostProcessor】 处理器接口 与 【init-method 】配置属性
1.统一处理器 ( BeanPostProcessor 在实际开发中用得不多,Spring内部则使用较多)
/** * Bean的处理器 */ public class MyBeanPostProcessor implements BeanPostProcessor{ /** * 初始化之前 */ @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println(bean.toString() + " 初始化之前"); return bean; } /** * 初始化之后 */ @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println(bean.toString() + " 初始化之后"); return bean; } }
2,bean的独立 init-method 方法 或者 实现 InitializingBean ( afterPropertiesSet() ) , 若共存时,接口优先调用。
<!-- 配置 spring 的 bean --> <bean id="greetingService" class="service.GreetingService" init-method="init"> <property name="greeting"> <value>hello world</value> </property> </bean> <!-- 注册 处理器 --> <bean id="myBeanPostProcessor" class="postProcessor.MyBeanPostProcessor"/>
3.执行顺序
① 统一处理器:前
② bean 的 独立 init-method
③ 统一处理器:后