4

我在一个文件中有配置:applicationContext.xml。我有数据源、会话工厂和另外两个 bean。

我想改变这样的配置:

  • applicationContext.xml -> parent,其中包含数据源、会话工厂
  • bean1.xml -> children,它继承自 applicationContext 并且仅包含有关 bean1 的信息
  • bean2.xml -> children,它继承自 applicationContext 并且仅包含有关 bean2 的信息

我怎样才能做到这一点?我找到了有关继承 bean 的信息,但我想要另外三个文件而不是一个

4

2 回答 2

1

看看 Spring 中的import 标签。您可以在 bean1.xml 和 bean2.xml 中使用它来导入您的顶级 applicationContext.xml 配置文件,因此这两个配置在加载时将是分开的。

于 2012-09-24T13:50:08.070 回答
0

原则上,应用程序上下文可以有一个父上下文并简单地从那里继承所有 bean。不是完全无关紧要的(除非它最近发生了变化)是如何构建这种关系。

这帮助了我:

http://blog.springsource.org/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/

(我与作者无关)。

另一种方法是实际编写代码来执行此操作。如果你有一个 Web 应用场景,你可以扩展 Spring 的 ContextLoaderListener 并覆盖 loadParentContext:

public class ComponentParentContextContextLoaderListener extends ContextLoaderListener {

   @Override
   protected ApplicationContext loadParentContext(ServletContext servletContext) {
        // load parent context .e.g from class path / static member
        return ac;
    }

}
于 2012-09-24T13:55:29.170 回答