如何使用从下面的目录导出的bean?

时间:2011-07-20 04:33:26

标签: java xml spring

例如,我认为我有一个包含A.spring和目录B的目录A.在目录B中,定义一个bean的B.spring说“WANTED_BEAN”。目录B中还有一个导出“WANTED_BEAN”的main.spring。如何在A.spring中重用此导出的bean?

下面的层次结构更好地解释了它。

  • 目录A.
    • A.spring(想在这里使用bean)
    • 目录B.
      • main.spring(此处导出的bean)
      • B.spring(此处定义的bean)

1 个答案:

答案 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>