如何从另一个模块的spring上下文导入一个spring-context?
module2 --uses--> module1
我有module1和module2(在我的maven模型中),都是spring应用程序。两个项目都位于同一个父目录中。
在module1中我有'module1 / Bean1'类(它是一个spring-bean)
moodule2应该使用module1。所以,在module2 / src / main / resources / context2.xml中,我尝试将“reference”放入context1,如下所示:
context2.xml:
<import resource="classpath*:module1/resources/context1.xml" />
所以,我希望在module2中使用这段代码:
ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[] {"context2.xml"});
Bean1 bean1 = (Bean1) appContext.getBean("bean1"); // It uses bean defined in the module1
但现在我有一个例外:没有定义名为'bean1'的bean
- context1.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
<context:component-scan base-package="module1"/> <!-- for @Component, @Service, @Repository being scanned in particular folder -->
答案 0 :(得分:1)
如果context1.xml在/ module1 / src / main / resources /下,而不是
<import resource="classpath*:module1/resources/context1.xml" />
你应该使用
<import resource="classpath*:context1.xml" />