我在Spring MVC中有两个类似且具有相同服务和模型的Web项目。我想拆分代码以便有一个共同的核心。
我创建了一个新项目(CORE),其中包含所有共享的服务和模型,并将其导出为此处指定的jar(Auto-wiring annotations in classes from dependent jars),但组件不会在CHILD项目中进行扫描和自动连接。 / p>
所以,我的问题是:
除了罐子之外还有哪些其他选项可以使自动线发生?
在Spring项目中拆分代码库和共享核心组件的最佳做法是什么?
答案 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/