• spring DefaultListableBeanFactory 概述


           
         有人说,DefaultListableBeanFactory是spring的发动机,其实重要性不为过。TA的整体类图如下:
     
     
    这里先概述接口部分:
     
    BeanFactory是Spring的最根的接口,类的工厂接口。HierarchicalBeanFactory接口是在继承BeanFactory的基础上,实现BeanFactory的父子关系。
     
    AutowireCapableBeanFactory接口是在继承BeanFactory的基础上,实现Bean的自动装配功能
     
    ListableBeanFactory接口是在继承BeanFactory的基础上,实现Bean的list集合操作功能
     
    ConfigurableBeanFactory接口是在继承HierarchicalBeanFactory的基础上,实现BeanFactory的全部配置管理功能, SingletonBeanRegistry是单例bean的注册接口
     
    ConfigurableListableBeanFactory接口是继承AutowireCapableBeanFactory,ListableBeanFactory,ConfigurableBeanFactory三个接口的一个综合接口
     
     
    在概述类部分:
     
    AliasRegistry接口是别名注册接口,SimpleAliasRegistry类是简单的实现别名注册接口的类。
     
    DefaultSingletonBeanRegistry是默认的实现SingletonBeanRegistry接口的类,同时,继承类SimpleAliasRegistry 。
    FactoryBeanRegistrySupport是实现FactoryBean注册的功能实现。继承类DefaultSingletonBeanRegistry 。
    AbstractBeanFactory是部分实现接口ConfigurableBeanFactory,并继承类FactoryBeanRegistrySupport 。
     
    AbstractAutowireCapableBeanFactory是实现接口AutowireCapableBeanFactory,并继承类 AbstractBeanFactory 。
     
     
    最后,DefaultListableBeanFactory实现接口 ConfigurableListableBeanFactory、BeanDefinitionRegistry(bean定义的注册接口), 并继承AbstractAutowireCapableBeanFactory,实现全部类管理的功能。
     
    DefaultListableBeanFactory其实要实现的功能就是以list集合的方式操作bean,为什么要拆成这么多的类和接口呢。这里面可能基于几点考虑。
    1 功能的不同维度,分不同的接口,方便以后的维护和其他人的阅读。如:AutowireCapableBeanFactory、ListableBeanFactory、HierarchicalBeanFactory等
    2 不同接口的实现,分布在不同的之类里,方便以后不同接口多种实现的扩展
    3 从整个类图的分布,可以看出spring在这块是面向接口编程,后面类的实现,他们认为只是接口功能实现的一种,随时可以拓展成多种实现
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    通过IP获取地理位置,做分类系统必备!
    【转】句柄详解
    【转】C#泛型约束
    [转]掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应[IBM]
    WPF调用Winfrom控件
    【转】C#对象的深拷贝与浅拷贝
    判断一个OBject类型是值类型还是引用类型
    WCF关于svcutil生成关于TCP绑定出现 元数据包含无法解析的引用:“net.tcp://127.0.0.1:9999/xxxx/”的解决方案
    C#枚举基础解析
    [转]掌握Ajax 第 1 部分: Ajax 入门简介 [IBM]
  • 原文地址:https://www.cnblogs.com/sten/p/5758161.html
Copyright © 2020-2023  润新知