Spring基础-BeanPostProcessor

/**
 * 每个bean初始化调用一次
 * 注意,不要返回null,否则从容器中获取不到对象
 * 作用:
 * 做一些回调之类的
 */
@Component
public class EchoBeanPostProcessor implements BeanPostProcessor {

    /**
     * bean的依赖装配之后触发的(属性设置之后触发的)
     *
     * @param bean
     * @param beanName
     * @return
     * @throws BeansException
     */
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("--------postProcessBeforeInitialization------" + bean.getClass());
        return bean;
    }


    /**
     * 在bean 的 init方法之后触发的.在bean的属性设置之后.
     *
     * @param bean
     * @param beanName
     * @return
     * @throws BeansException
     */
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("--------postProcessAfterInitialization------" + bean.getClass());

        if (bean instanceof User) {
            return new LogUser();
        }
        return bean;
    }
}

 

 


posted @ 2018-06-27 23:41  宋发准  阅读(252)  评论(0编辑  收藏  举报