BeanFactory 的继承问题

2016-09-01 10:34:49 +08:00
 lml12377

首先 BeanFactory 作为根接口,有最基本的三个派生接口,按照单一职责原则,分别为: AutowireCapableBeanFactory / ListableBeanFactory / HierarchicalBeanFactory ,每个负责 BeanFactory 一个方面的增强。

但是生成 UML 之后发现,继承了所有三个接口的接口是 ConfigurableListableBeanFactory(这命名也是奇怪,明明继承了 3 个,为什么名称里只有 2 个?),而真正实现了所有这三个接口的是 DefaultListableBeanFactory(这个命名也很奇怪) , XmlBeanFactory 就是继承自它。

但是还有另外一个最重要的 ApplicationContext ,它其实是在 BeanFactory 的基础上加了比如 Event / Resource / i18n 等。但是它并没有实现 AutowireCapableBeanFactory (也没有间接实现)。

为什么会有这两条线路呢?既然 ApplicationContext 就可以用了,为啥还要 xmlBeanFactory 呢?为什么 ApplicationContext 不把所有的接口都实现了呢?

1197 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/303117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX