例如,我认为我有一个包含A.spring和目录B的目录A.在目录B中,定义一个bean的B.spring说“WANTED_BEAN”。目录B中还有一个导出“WANTED_BEAN”的main.spring。如何在A.spring中重用此导出的bean?
下面的层次结构更好地解释了它。
答案 0 :(得分:0)
当你在谈论目录时,我希望你所说的是你在那些目录中有一些不同的Spring上下文定义XML文件。
Spring有一个父/子ApplicationContext
的概念,但仅仅在目录结构中定位上下文配置并不意味着Spring会以这种方式看待它。
你没有说你是如何构建你的ApplicationContext
所以要发表评论有点困难,但是:
Composing XML-based configuration metadata解释了如何import
另一个XML配置文件。
另一方面,如果您在应用程序中使用提供的路径创建ApplicationContext
,则应查看Instantiating a container的参考,也可能{{3}文档。
你应该做的
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"A/A.spring", "B/B.spring", "B/main.spring"});
或
<beans>
<import resource="A/A.spring"/>
<import resource="B/B.spring"/>
<import resource="B/main.spring"/>
</beans>