prepareBeanFactory是配置factory的标准参数,比如ClassLoader and post-processors
1.setBeanClassLoader()方法,首先设置class loader,默认是当前context线程的class loader.在实例化context class(默认:XmlWebApplicationContext)的时候会在父类DefaultResourceLoader的构造方法中定义了设置class loader的方法。默认调用ClassUtils.getDefaultClassLoader()方法设置,或者是由自定义的context class赋予。
2.addPropertyEditorRegistrar()方法,为BeanFactory添加一个属性编辑器注册表(PropertyEditorRegistrar),默认是一个ResourceEditorRegistrar编辑器注册表。作用目前不详
3.addBeanPostProcessor()方法,增加一个新的,并且适用于由这个工厂创建的beans的BeanPostProcessor。在工厂配置过程中被调用。在AbstractBeanFactory类中被实现,会判断BeanPostProcessor是否属于他的子接口InstantiationAwareBeanPostProcessor,DestructionAwareBeanPostProcessor,还提供了getBeanPostProcessorCount和getBeanPostProcessors(AbstractBeanFactory类中提供,只有继承此类才能使用)两个方法来查看和调用BeanPostProcessor。
4.ignoreDependencyInterface方法,设置忽略的接口。在AbstractAutowireCapableBeanFactory被实现。 默认设置了ResourceLoaderAware,ApplicationEventPublisherAware,MessageSourceAware,ApplicationContextAware四个标识性接口。作用目前不详。