我的项目包含多个Spring子项目:


服务1
服务2
服务3


每个Service都与内部的其他Bean有多个依赖关系,因此每个Service都有一个将该Service连接在一起的applicationContext.xml。

我使每个子项目成为一个独立的Maven构建,并且我认为我可以创建AllServicesTogether应用程序以将这些Service {1..3}连接在一起。

通过将maven依赖项添加到那些服务中来工作。

<dependencies>
    <dependency>
        <groupId>org.myproject</groupId>
        <artifactId>myproject-service{1..3}</artifactId>
        <version>0.1-SNAPSHOT</version>
    </dependency>
    ...
</dependencies>


但是在AllServicesTogether应用程序内部,子服务的所有接线都丢失了。我猜子服务不是用子服务ApplicationContext编译的,而是使用AllServicesTogether ApplicationContext。

这个想法是封装SubSerivces的所有布线,并使用以下命令简单地将AllServicesTogether布线:


<beans ..>
    <bean class="org.myproject.service1.Service1"/>
    <bean class="org.myproject.service1.Service2"/>
    <bean class="org.myproject.service1.Service3"/>
</beans>


我从花费大量时间的较大项目中创建了这些子项目。
是否可以使用这种接线方法,还是我需要包括所有这些服务中的context.xml?

最佳答案

您需要包括来自那些服务的context.xml。最好在AllServicesTogether-context.xml中使用“导入”完成此操作:

<import resource="classpath*:/META-INF/spring/service1-context.xml" />
<import resource="classpath*:/META-INF/spring/service2-context.xml" />
<import resource="classpath*:/META-INF/spring/service3-context.xml" />

10-04 20:57