如何将spring应用程序上下文导入另一个应用程序上下文?

时间:2015-02-13 15:44:19

标签: java spring maven spring-mvc applicationcontext

我有两个弹簧应用程序上下文。一个是我的应用程序本地的,另一个是maven依赖项之一。

现在,我的 applicationContext.xml 文件看起来像这样。

<import resource="classpath*:**/sample-applicationContext.xml" />

我在<context:component-scan>文件中有sample-applicationContext.xml来扫描组件。

现在,当我做以下事情时......

ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
MyClass m=ctx.getBean(MyClass.class);

不幸的是,当我获得MyClass对象时,会创建该对象,但我发现MyClass中的依赖关系未被注入。

MyClass中自动装配的依赖项是使用<context:component-scan>文件中的sample-applicationContext.xml扫描的bean。

有没有办法在我的项目类中使用Maven依赖项中存在的多个应用程序上下文并在其中自动装配bean?

2 个答案:

答案 0 :(得分:0)

我不确定maven依赖关系,但是你正在尝试使用spring做一些像交叉上下文这样的事情。请看一下这个链接:http://blog.imaginea.com/cross-context-communication-between-web-applications/

编辑:似乎有办法,看一下这篇文章:Loading spring application context files that are inside a jar in classpath

答案 1 :(得分:0)

以下方式,您可以加载多个spring applicationContext文件。

ApplicationContext context = 
new ClassPathXmlApplicationContext(new String[] {"sample-applicationContext.xml",   "applicationContext.xml"});

如果你可以在这里发布applicationContext.xml,sample-applicationContext.xml和MyClass代码段,那将是件好事。