继续讨论BeanFactoryPostProcesso
beanFactoryPostProcessor有什么作用
顾名思义beanFactoryPostProcessor=bean工厂的后置处理器,主要是提供给程序员扩展的(当然了spring内部也对这个接口进行了各种实现,本文只讨论程序员如何扩展它);在spring容器运行期间可以让程序员对BeanFactory组件进行各种全局的设置,这便是这个处理器的作用;关于什么是beanFactory——中文翻译过来叫做bean工厂,其实也就是我们常常说的spring容器;这个处理器主要就是针对spring容器做一些配置;那么他能进行哪些配置呢?先看一下这个接口的定义和他的主要方法
public interface BeanFactoryPostProcessor {
void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
}
其实这个接口(不考虑子类)他只有一个方法;也就是当程序员实现这个接口后,重写这个方法后,spring容器会在启动的时候调用你重写的这个方法,并且把ConfigurableListableBeanFactory
类的对象传给你;实际运行过程中传入的是个子类——DefaultListableBeanFactory
,当我们得到这beanFactory之后就能对这对象进行设置了,那么回到刚刚的问题,主要能进行哪些设置呢?这就要看DefaultListableBeanFactory
当中主要提供哪些API供我们调用了;他的api比较多,笔者并没有打算在一篇文章当中写完;会逐个分析他的一些重要的api
ignoreDependencyType
ignoreDependencyType
——忽略依赖注入的某个类型,存在父类当中ConfigurableListableBeanFactory
先看一下这方法发的定义和javadoc
/**
* Ignore the given dependency type for autowiring:
* for example, String. Default is none.
* @param type the dependency type to ignore
*/
void ignoreDependencyType(Class<?> type);
这个方法只有参数class类型的,比如你调用这个方法传入了一个B.class
则表示整个spring容器当中当遇到需要自动注入B的时候会被忽略,你注意看他的javadoc的说明,特别强调是自动注入的时候&#