Spring BeanPostProcessor使用

先来看看BeanPostProcessor接口的定义:

public interface BeanPostProcessor {
	Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;
	Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException;
}

需要了解的有几点:

1、接口实现给Spring回调;

2、作用范围是Spring接管的所有Bean;

3、作用是实例化任意Bean前和后对Bean实例进行修改;

4、返回的Bean会被装入IOC容器。

5、需要将自定义的实现注册到IOC容器才能生效;

6、BeanPostProcessor和容器绑定,对父容器或子容器中Bean不起作用。

掌握以上几点就可以很轻松的使用BeanPostProcessor接口了,这里说说一种使用场景,在多数据源的情况下,且使用了MyBatis的SqlSessionDaoSupport,这时不同的SqlSessionDaoSupport需要注入不同的DataSource,这个时候就可以在实例化Bean时通过注解判断,注入不同的DataSource。

猜你喜欢

转载自blog.csdn.net/tales522/article/details/81145443