我有两个弹簧应用程序上下文。一个是我的应用程序本地的,另一个是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?
答案 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代码段,那将是件好事。