ConfigurableListableBeanFactory接口中的重要api
- 这节主要是深刻认识beanFactory的api,bean工厂的处理器,主要是提供给程序员扩展的,在spring容器运行期间可以让程序员对BeanFactory组件进行设置。
- 创建一个BeanFactoryPostProcessorTest类实现BeanFactoryPostProcessor接口。
public class BeanFactoryPostProcessorTest implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
ScannedGenericBeanDefinition m = (ScannedGenericBeanDefinition) beanFactory.getBeanDefinition("m");
m.setBeanClass(M.class);
}
}
- 在这里说一下BeanFactoryPostProcessor接口的子实现类:
- 好了我们再看实现BeanFactoryPostProcessor接口后都是由postProcessBeanFactory()方法来实现对beanFactory的前置处理。他是给定一个ConfigurableListableBeanFactory对象,然后可以让程序员来对该对象进行操作。
public class BeanFactoryPostProcessorTest implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
}
}
- 我们点进该对象中的可以看到他是一个接口,那么他肯定有子实现类:
- 大多数情况下我们用的是第一个DefaultListableBeanFactory这个实现类。
那好,其实针对于BeanFactory的扩展原理我们就要从这里开始讲解了,从较为重要的方法来入手:
- ignoreDependencyType(Class<?> type);
- ignoreDependencyInterface(Class<?> ifc);
- registerResolvableDependency(Class<?> dependencyType, @Nullable Object autowiredValue);
- clearMetadataCache();--void freezeConfiguration();--boolean isConfigurationFrozen();
- registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionStoreException;
- AnnotationBeanDefinitionReader()