You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将重复实体提取为共享模块并在多个Spring项目中使用?

提取重复实体类至公共项目的实现步骤

1. 创建公共Jar项目

新建一个纯Java Maven/Gradle项目(无需Spring Boot Web等额外模块,仅作为公共模型库),命名比如common-model,配置好项目的groupId、artifactId和版本号(示例:com.ronyt.common:common-model:1.0.0)。

2. 配置公共项目依赖

根据实体类的依赖,在公共项目的构建文件中添加必要依赖:

  • Maven示例(pom.xml):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ronyt.common</groupId>
    <artifactId>common-model</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <dependencies>
        <!-- Lombok:保证实体类注解正常生效 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
            <scope>provided</scope>
        </dependency>
        <!-- Jackson:支持JSON序列化/反序列化 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.15.2</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>
  • Gradle示例(build.gradle):
plugins {
    id 'java'
}

group 'com.ronyt.common'
version '1.0.0'

repositories {
    mavenCentral()
}

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.30'
    annotationProcessor 'org.projectlombok:lombok:1.18.30'
    compileOnly 'com.fasterxml.jackson.core:jackson-databind:2.15.2'
}

3. 迁移实体类及关联枚举

将两个项目中重复的实体类,以及它依赖的Hand枚举,完整迁移到公共项目的对应包路径下:

  • 实体类放在与原项目一致的包(比如com.ronyt.common.model.entity),避免修改业务项目的引用路径
  • Hand枚举放在com.ronyt.common.model.enums,保持原包结构不变

4. 发布公共项目到仓库

  • 本地测试:在公共项目根目录执行mvn install(Maven)或gradle publishToMavenLocal(Gradle),将Jar包安装到本地Maven仓库。
  • 正式环境:推送到公司私有Maven仓库(如Nexus、Artifactory),方便两个业务项目统一拉取。

5. 在业务项目中引入公共依赖

在两个Spring项目的构建文件中,添加公共项目的依赖:

  • Maven示例:
<dependency>
    <groupId>com.ronyt.common</groupId>
    <artifactId>common-model</artifactId>
    <version>1.0.0</version>
</dependency>
  • Gradle示例:
implementation 'com.ronyt.common:common-model:1.0.0'

6. 清理与验证

  • 删除两个业务项目中原来的重复实体类和Hand枚举
  • 启动业务项目,测试接口调用、JSON序列化/反序列化等功能,确保编译和运行无异常

内容的提问来源于stack exchange,提问作者Rony Tesler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:42:46