Spring - 使用来自.jar文件的applicationContext作为依赖项添加

时间:2013-08-29 14:13:53

标签: java spring applicationcontext

想象一下有两个独立模块的情况 - 模块A和B.它们都是使用Spring构建的。每个都有自己的applicationContext - 模块A与applicationContextA和B - applicationContextB一起使用 模块A包含外观类 - 在bean moduleAFacade中定义 - 提供模块A的一些功能。模块B需要访问模块A的功能。
让我们在模块B中添加模块A作为.jar依赖项。 applicationContextB中有这种结构:

<bean id="moduleBBeanUsingModuleAfacade" class="com.example.moduleB">
    <property name="moduleAFacadeObject" ref="moduleAFacade" />
</bean>

但模块A的applicationContext无法直接从Module B的appContext访问。我需要使用像

这样的东西
<import resource="classpath*:moduleAApplicationContext.xml" /> 

是否还有其他方法可以访问作为依赖项添加到项目中的.jar文件的应用程序上下文? 是否有一些最佳实践如何完成任务?


1 个答案:

答案 0 :(得分:3)

您可以在模块A中定义配置文件

package you.organisation.moduleA.config;
@Configuration
@ImportResource("classpath:path/to/applicationContextA.xml")
public class ModuleAConfig implements Serializable {

}

在模块B上下文文件中,您可以访问模块A bean

<context:component-scan base-package="you.organisation.*.config" />

如果您想使用模块B配置文件,请执行相同的操作

package you.organisation.moduleB.config;
@Configuration
@ImportResource("classpath:path/to/applicationContextB.xml")
public class ModuleBConfig implements Serializable {

}

并在将使用它的模块中

<context:component-scan base-package="you.organisation.*.config" />

关于使用通配符时必须小心的最佳做法,请使用look to the section 4.7.2.2