Spring框架之IoC容器—ConfigurableBeanFactory接口
2017-10-27 14:28
363 查看
一、ConfigurableBeanFactory简介
ConfigurableBeanFactory继承HierarchicalBeanFactory接口。ConfigurableBeanFactory接口扩展了BeanFactory功能,几乎所有的Bean工厂都会实现这个接口。
ConfigurableBeanFactory接口不推荐在常见的应用代码中使用(还是推荐使用BeanFactory和ListableBeanFactory),主要用于
框架内部使用以及
对Bean工厂的配置进行特殊访问。
二、ConfigurableBeanFactory源码详解
public interface ConfigurableBeanFactory extends HierarchicalBeanFactory, SingletonBeanRegistry { /** * Bean作用域的“单例”标识。 * 注意:自定义Bean作用域可通过registerScope方法添加。 */ String SCOPE_SINGLETON = "singleton"; /** * Bean作用域的“原型”标识。 * 注意:自定义Bean作用域可通过registerScope方法添加。 */ String SCOPE_PROTOTYPE = "prototype"; /** * 设置该Bean工厂的父容器 * 注意:父容器不可被改变:如果在工厂实例化是不可用时,只能从外部的构造函数进行设置。 */ void setParentBeanFactory(BeanFactory parentBeanFactory) throws IllegalStateException; /** * 设置用于加载Bean类的类加载器。 * 注意:这个类加载器只能用在Bean定义(不含有Bean类解析),Bean定义只指定类名,只有Bean工厂处理Bean定义才被解析。 */ void setBeanClassLoader(ClassLoader beanClassLoader); /** * 返回用于加载Bean类的类加载器 */ ClassLoader getBeanClassLoader(); /** * 指定一个用于类型匹配的临时类加载器。 * 默认为没有,简单使用标准的类加载器。 */ void setTempClassLoader(ClassLoader tempClassLoader); /** * 返回用于类型匹配的临时类加载器。 */ ClassLoader getTempClassLoader(); /** * 设置是否开启缓存Bean元数据,默认是开启的。 */ void setCacheBeanMetadata(boolean cacheBeanMetadata); /** * 返回是否开启缓存Bean元数据。 */ boolean isCacheBeanMetadata(); /** * */ void setBeanExpressionResolver(BeanExpressionResolver resolver); /** * */ BeanExpressionResolver getBeanExpressionResolver(); /** * */ void setConversionService(ConversionService conversionService); /** * */ ConversionService getConversionService(); /** * */ void addPropertyEditorRegistrar(PropertyEditorRegistrar registrar); /** * */ void registerCustomEditor(Class<?> requiredType, Class<? extends PropertyEditor> propertyEditorClass); /** * */ void copyRegisteredEditorsTo(PropertyEditorRegistry registry); /** * */ void setTypeConverter(TypeConverter typeConverter); /** * */ TypeConverter getTypeConverter(); /** * */ void addEmbeddedValueResolver(StringValueResolver valueResolver); /** * */ String resolveEmbeddedValue(String value); /** * */ void addBeanPostProcessor(BeanPostProcessor beanPostProcessor); /** * */ int getBeanPostProcessorCount(); /** * */ void registerScope(String scopeName, Scope scope); /** * */ String[] getRegisteredScopeNames(); /** * */ Scope getRegisteredScope(String scopeName); /** * */ AccessControlContext getAccessControlContext(); /** * */ void copyConfigurationFrom(ConfigurableBeanFactory otherFactory); /** * */ void registerAlias(String beanName, String alias) throws BeanDefinitionStoreException; /** * */ void resolveAliases(StringValueResolver valueResolver); /** * */ BeanDefinition getMergedBeanDefinition(String beanName) throws NoSuchBeanDefinitionException; /** * */ boolean isFactoryBean(String name) throws NoSuchBeanDefinitionException; /** * */ void setCurrentlyInCreation(String beanName, boolean inCreation); /** * */ boolean isCurrentlyInCreation(String beanName); /** * */ void registerDependentBean(String beanName, String dependentBeanName); /** * */ String[] getDependentBeans(String beanName); /** * */ String[] getDependenciesForBean(String beanName); /** * */ void destroyBean(String beanName, Object beanInstance); /** * */ void destroyScopedBean(String beanName); /** * */ void destroySingletons(); }
相关文章推荐
- (三)Spring框架——IoC容器
- spring框架 使用注解方式将bean加入ioc容器的问题:BeanDefinitionStoreException
- Spring框架之SpringIoc容器(一)
- Spring框架之IoC容器—概览
- Spring框架之IoC容器—HierarchicalBeanFactory接口
- Spring框架的IOC容器
- Spring框架核心技术--IOC容器
- [置顶] Spring框架介绍和IoC容器中Bean配置(Spring框架)
- 【spring框架】(二)控制反转(IOC)容器
- 深入理解Java的Spring框架中的IOC容器
- 【SSH进阶之路】一步步重构容器实现Spring框架——配置文件+反射实现IoC容器(十)
- Spring框架及IOC容器
- Spring框架IOC容器和AOP解析
- 【SSH进阶之路】一步步重构容器实现Spring框架——配置文件+反射实现IoC容器(十)
- Spring框架之IoC容器—AutowireCapableBeanFactory接口
- Spring框架介绍和IoC容器中Bean配置(Spring框架)
- Spring框架IOC容器和AOP解析
- Spring框架IOC容器和AOP解析
- 写一个自己的Spring框架——简单实现IoC容器功能
- 一步步重构容器实现Spring框架——配置文件+反射实现IoC容器(十)