spring代码类继承层次结构深度解析之BeanFactory

上面是我截图自IDEA,主要是DefaultListableBeanFactory的继承结构。为啥选DefaultListableBeanFactory呢?熟悉spring源码的人一般都知道,这个类已经是BeanFactory组件的最底层的实现了。虽然他下面还有个XmlBeanFactory,但是已经是过时的了。所以我们最底层选择的是他,就能看到整个BeanFactory的功能的扩展体系。还请注意,ApplicationContext不在本次的讨论之内。

这个图大致可分为3部分吧。红色框的部分;Serializable,SuppressWarnings;还有其余部分。其中Serializable,SuppressWarnings没啥好说的,就是简单的标记接口,本文也不做过多赘述。

首先讲下红框部分,为啥他们是一类的呢?细心的朋友或许看出了一些端倪,因为这部分是属于spring-core包中的内容。其余是spring-bean的内容。spring-core顾名思义,是spring的核心包,如果源码看多了,你也会发现好多框架中都会有个xxx-core的模块。其实就是一些最通用,最底层,最核心的代码,类,接口等。他是服务于其他模块的,就比如这里的spring-beans模块。这里提供了一个AliasRegistry的概念(组件)。spring就认为,这种别名注册是很通用的一种功能,因此要把他沉淀到spring-core模块中,供其他模块使用。这是个很抽象的接口,但也很好理解。比如:科比=小飞侠=曼巴=kobe=科比布莱恩特;这么多的名字其实都是一个人的别名。难道这不是一种通用能力吗?

再往下想,如果是这样的话,那么这个接口要有那些方法呢?

这个是别名注册中心,所以就会有注册的方法。只有注册了别名,才能便于以后使用啊,比如要将科比=小飞侠 , 科比=曼巴,科比=kobe,科比=科比布莱恩特,这种键值对注册到注册中心。让人知道这些都是科比的别名。

既然有注册,那就有取消注册也就是移除方法吧。(毕竟CRUD)

那也顺理成章的有判断一个名字是不是某个名称的别名的方法。

还有获取某个名称的所有别名的方法。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值