首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从0到1搭建Spring Boot 开发脚手架之模块详细介绍

从0到1搭建Spring Boot 开发脚手架之模块详细介绍

作者头像
紫风
发布2025-10-14 18:11:47
发布2025-10-14 18:11:47
300
代码可运行
举报
运行总次数:0
代码可运行

搭建到现在,大家可能通过文章还没有亲自操作的话,对项目还没有一个概念。那现在我就将整个脚手架所涉及到的父工程 pom.xml 文件内容列一下,并把整体架构分成设计的package结构列一下,并做一下详细的介绍,让大家知道都有架构里边都有哪些模块,都有哪些分层设计,并列出最终的模块名字(按需修改),给大家做个参考。

1. 父工程 pom.xml 文件内容
代码语言:javascript
代码运行次数:0
运行
复制
<?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.example</groupId>
    <artifactId>scaffold-parent</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>  <!-- 父工程必须为pom类型 -->

    <modules>
        <module>scaffold-common</module>        <!-- 通用工具模块 -->
        <module>scaffold-gateway</module>       <!-- 网关模块 -->
        <module>scaffold-auth</module>          <!-- 认证中心模块 -->
        <module>scaffold-user</module>          <!-- 用户服务模块 -->
        <module>scaffold-admin-ui</module>      <!-- 后台管理前端 -->
    </modules>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.5</version>  <!-- Spring Boot 版本 -->
    </parent>

    <properties>
        <java.version>17</java.version>
        <spring-cloud.version>2022.0.4</spring-cloud.version>
        <spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>
        <mybatis-plus.version>3.5.3.1</mybatis-plus.version>
        <hutool.version>5.8.20</hutool.version>
        <jjwt.version>0.11.5</jjwt.version>
    </properties>

    <!-- 依赖管理(子模块按需引用) -->
    <dependencyManagement>
        <dependencies>
            <!-- Spring Cloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- Spring Cloud Alibaba -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- MyBatis-Plus -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>

            <!-- 其他公共依赖 -->
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>${hutool.version}</version>
            </dependency>
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt-api</artifactId>
                <version>${jjwt.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- 所有子模块共享的依赖(如Lombok) -->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 统一编译器版本 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

2. 整体模块与分层设计
2.1 模块划分

模块名

职责说明

scaffold-parent

父工程,管理所有子模块的依赖版本和公共配置

scaffold-common

通用工具模块:包含全局异常处理、工具类、Swagger配置、Redis模板、公共DTO/枚举等

scaffold-gateway

网关模块:路由转发、JWT鉴权、限流、跨域处理

scaffold-auth

认证中心模块:用户登录、权限校验、RBAC模型实现

scaffold-user

示例业务服务模块(如用户管理)

scaffold-admin-ui

后台管理前端(Vue/Ant Design Pro)


2.2 分层架构(以 scaffold-user 模块为例)
代码语言:javascript
代码运行次数:0
运行
复制
src/main/java
└── com.example.scaffold.user
    ├── config                # 配置类(如MyBatis-Plus分页配置)
    ├── controller            # REST接口层(对外暴露API)
    ├── service               # 业务逻辑层(接口+实现类)
    │   └── impl
    ├── mapper                # 数据访问层(MyBatis-Plus Mapper接口)
    ├── entity                # 数据库实体类
    ├── dto                   # 数据传输对象(请求/响应参数封装)
    └── exception             # 业务自定义异常

2.3 核心包结构详解
(1)通用模块 scaffold-common
代码语言:javascript
代码运行次数:0
运行
复制
src/main/java
└── com.example.scaffold.common
    ├── aop         # 切面(如日志切面、权限切面)
    ├── config      # 全局配置(Swagger、Redis、MyBatis-Plus)
    ├── constant    # 常量(错误码、通用状态枚举)
    ├── exception   # 全局异常处理器
    ├── util        # 工具类(日期处理、加密、JWT)
    └── response    # 统一响应封装(Response<T>)
(2)网关模块 scaffold-gateway
代码语言:javascript
代码运行次数:0
运行
复制
src/main/java
└── com.example.scaffold.gateway
    ├── filter       # 全局过滤器(JWT校验、请求日志)
    ├── config       # 网关动态路由配置
    └── exception    # 网关层异常处理
(3)认证模块 scaffold-auth
代码语言:javascript
代码运行次数:0
运行
复制
src/main/java
└── com.example.scaffold.auth
    ├── config       # Spring Security配置
    ├── controller   # 登录/登出接口
    ├── service      # 用户权限校验逻辑
    └── security     # 安全相关(JWT过滤器、密码加密)

3. 分层设计原则
3.1 核心分层
  1. 接口层(Controller)
    • 职责:接收请求、参数校验、返回响应。
    • 注解:@RestController + @Validated
  2. 业务层(Service)
    • 职责:实现业务逻辑,调用数据层。
    • 注解:@Service + @Transactional(事务控制)。
  3. 数据层(Mapper)
    • 职责:数据库操作,直接与MyBatis-Plus交互。
    • 接口:继承 BaseMapper<T>
  4. 实体层(Entity)
    • 职责:定义数据库表映射的Java对象。
    • 注解:@TableName + @TableField
3.2 横向扩展能力
  • 缓存层:在Service层通过 RedisTemplate 或 @Cacheable 集成。
  • 异步处理:通过 @Async 或消息队列(如RocketMQ)解耦。
  • 监控层:通过 Spring Boot Actuator 暴露健康检查端点。

4. 开发人员操作指南

新增业务模块(如订单服务):

  • 在父工程 pom.xml 的 <modules> 中添加 <module>scaffold-order</module>
  • 复制 scaffold-user 模块结构,修改包名为 com.example.scaffold.order

依赖引用

在子模块中按需继承父工程依赖:

代码语言:javascript
代码运行次数:0
运行
复制
<!-- 示例:用户模块依赖common模块 -->
<dependency>
    <groupId>com.example</groupId>
    <artifactId>scaffold-common</artifactId>
    <version>1.0.0</version>
</dependency>

接口开发流程

  • 在 entity 包定义数据库实体 → 在 mapper 包编写Mapper接口 → 在 service 包实现业务逻辑 → 在 controller 包暴露API。

5. 关键设计优势
  1. 依赖统一管理:父工程锁定所有第三方库版本,避免版本冲突。
  2. 模块职责清晰:网关、认证、业务服务分离,符合微服务设计原则。
  3. 快速扩展性:新增业务模块只需复制模板,无需重复配置。
  4. 标准化输出:统一响应格式、异常处理、日志规范。

通过此结构,开发人员只需关注 业务代码(如 UserService 实现),无需处理底层技术细节。

本篇的分享就到这里了,感谢观看,如果对你有帮助,别忘了点赞+收藏+关注。 后续将继续把后续步骤继续完善,有什么遗漏、或者对什么功能有缺失的可以评论区,指出来,共同成长共同进步。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 父工程 pom.xml 文件内容
  • 2. 整体模块与分层设计
    • 2.1 模块划分
    • 2.2 分层架构(以 scaffold-user 模块为例)
    • 2.3 核心包结构详解
      • (1)通用模块 scaffold-common
      • (2)网关模块 scaffold-gateway
      • (3)认证模块 scaffold-auth
  • 3. 分层设计原则
    • 3.1 核心分层
    • 3.2 横向扩展能力
  • 4. 开发人员操作指南
  • 5. 关键设计优势
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档