spring核心类之DefaultListableBeanFactory

XmlBeanFactory extends DefaultListableBeanFactory
XmlBeanFactory 方法已过期。
spring3.1之后已经废弃这个类
替代方式:DefaultListableBeanFactory+XmlBeanDefinitionReader 方式


DefaultListableBeanFactory是整个bean加载的核心,是spring注册及加载bean的默认实现


public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory
implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, Serializable {}


DefaultListableBeanFactory层次结构图:

spring核心类之DefaultListableBeanFactory_第1张图片


AliasRegistry:  定义了对Alias简单的增删改操作。


SimpleAliasRegitry:  /** Map from alias to canonical name */
                         private final Map aliasMap = new ConcurrentHashMap<>(16);

                         使用了Map作为Alias的缓存,并实现AliasRegistry接口。


SingletonBeanRegistry:  定义对单例的注册获取。


BeanFactory:  获取bean以及bean的isSingleton,isPrototype,isTypeMatch等属性。


DefaultSingletonBeanRegistry:  对SingletonBeanRegistry的实现。


HierarchicalBeanFactory:  继承BeanFactory,在此基础增加了对ParentBeanFactroy的支持,多出BeanFactory getParentBeanFactory();和 boolean containsLocalBean(String name);方法。


BeanDefinitionRegistry:  继承AliasRegitry,定义了对BeanDefinitionRegistry的基本操作。


FactoryBeanRegistrySupport : 继承DefaultSingletonBeanRegistry,并在此基础上增加对FactoryBean的一些操作。


ConfigurableBeanFactory:提供配置Factory的各种方法。


ListableBeanFactory:  获取Bean的配置清单。


AbstractBeanFactory:  综合FactoryBeanRegitrySupport 和 ConfigurableBeanFactory 的功能。


AutowireCapableBeanFactory:  提供创建bean,自动注入,初始化以及应用bean的后处理器。


AbstractAutowireCapableBeanFactory:结合AbstractBeanFactory 和 接口 AutowireCapableBeanFactory。


ConfigurableListableBeanFactory :  BeanFactory配置清单,指定忽略类型及接口等。


DefaultListableBeanFactory:  综合上述所有功能,主要是对bean注册后的处理。


spring核心类之DefaultListableBeanFactory_第2张图片

第一次画类图,有点丑。。。


你可能感兴趣的:(spring)