如何使2个spring项目共享相同的代码库

时间:2015-02-22 20:13:23

标签: java spring spring-mvc

我在Spring MVC中有两个类似且具有相同服务和模型的Web项目。我想拆分代码以便有一个共同的核心。

我创建了一个新项目(CORE),其中包含所有共享的服务和模型,并将其导出为此处指定的jar(Auto-wiring annotations in classes from dependent jars),但组件不会在CHILD项目中进行扫描和自动连接。 / p>

所以,我的问题是:

除了罐子之外还有哪些其他选项可以使自动线发生?

在Spring项目中拆分代码库和共享核心组件的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

如下所示。有关详细信息,请参阅http://books.sonatype.com/mvnex-book/reference/multimodule.html

Maven父模块/pom.xml

...
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>X.X-TAG</version>
<packaging>pom</packaging>
<modules>
<module>core</module>
<module>child1</module>
</modules>
...

Maven核心模块:/core/pom.xml

...
<parent>
<artifactId>parent</artifactId>
<groupId>com.example</groupId>
<version>X.X-TAG</version>
</parent>
<packaging>jar</packaging>
<artifactId>core</artifactId>
...

Maven child1模块:/child1/pom.xml

...
<parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>X.X-TAG</version>
</parent>
<packaging>war</packaging>
<artifactId>child1</artifactId>
<dependencies>
<dependency>
    <groupId>${parent.groupId}</groupId>
    <artifactId>core</artifactId>
    <version>${parent.versionId}</version>
</dependency>
</dependencies>
...

答案 1 :(得分:0)

我会使用跨上下文。通过这种方式,您可以在许多将此模块与其他模块分开的应用程序中自动装配您的bean,当然,您希望在应用程序之间共享的代码也不会重复。

我建议您查看本指南:

http://blog.imaginea.com/cross-context-communication-between-web-applications/

来自Spring博客: http://spring.io/blog/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/