我正在阅读Pro Spring 2.5,我在第2章有一个问题,你在那里建立一个简单的bean工厂。他们谈论“bean registery”,这是“地图”,它保存从属性文件中读取的列表(可以是我假设的任何格式)?
因此,如果这是正确的,BeanFactory基本上就是这样做的:
这是对的吗?
他们谈到将BeanRegistery提取到接口然后BeanFactory实现了这个接口,但我猜原理是一样的吗?它仅用于良好的编码目的吗?
答案 0 :(得分:2)
我相信你指的是BeanDefinitionRegistry。它只是作为一种跟踪BeanDefinition对象的方式(即你在xml文件中放入的内容,假设你正在使用xml)。
实现不必进行任何实例化。这留给了BeanFactory实现。通常情况就是这样:
实际上,BeanFactory和BeanDefinitionRegistry是同一个类,BeanFactoryImplementation将实例化相应的BeanDefinitionReader。
使用org.springframework.context.support.ClassPathXmlApplicationContext实现BeanDefinitionRegistry和BeanFactory,并在内部构造一个XmlBeanDefinitionReader,并控制组件之间的交互。
答案 1 :(得分:0)
不,你不必做任何这些。这比你想的要容易得多。
得到一个ApplicationContext
,你很高兴。它读取配置,创建并连接bean,并按名称提供它们。
ClassPathXmlApplicationContext
是具体实现的不错选择。您可以从类路径中的目录加载所有配置。