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

③ 统一处理器:后

posted @ 2013-12-15 14:44  聆听自由  阅读(352)  评论(0编辑  收藏  举报