搭建到现在,大家可能通过文章还没有亲自操作的话,对项目还没有一个概念。那现在我就将整个脚手架所涉及到的父工程 pom.xml 文件内容列一下,并把整体架构分成设计的package结构列一下,并做一下详细的介绍,让大家知道都有架构里边都有哪些模块,都有哪些分层设计,并列出最终的模块名字(按需修改),给大家做个参考。
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.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>
模块名 | 职责说明 |
---|---|
scaffold-parent | 父工程,管理所有子模块的依赖版本和公共配置 |
scaffold-common | 通用工具模块:包含全局异常处理、工具类、Swagger配置、Redis模板、公共DTO/枚举等 |
scaffold-gateway | 网关模块:路由转发、JWT鉴权、限流、跨域处理 |
scaffold-auth | 认证中心模块:用户登录、权限校验、RBAC模型实现 |
scaffold-user | 示例业务服务模块(如用户管理) |
scaffold-admin-ui | 后台管理前端(Vue/Ant Design Pro) |
scaffold-user
模块为例)src/main/java
└── com.example.scaffold.user
├── config # 配置类(如MyBatis-Plus分页配置)
├── controller # REST接口层(对外暴露API)
├── service # 业务逻辑层(接口+实现类)
│ └── impl
├── mapper # 数据访问层(MyBatis-Plus Mapper接口)
├── entity # 数据库实体类
├── dto # 数据传输对象(请求/响应参数封装)
└── exception # 业务自定义异常
scaffold-common
src/main/java
└── com.example.scaffold.common
├── aop # 切面(如日志切面、权限切面)
├── config # 全局配置(Swagger、Redis、MyBatis-Plus)
├── constant # 常量(错误码、通用状态枚举)
├── exception # 全局异常处理器
├── util # 工具类(日期处理、加密、JWT)
└── response # 统一响应封装(Response<T>)
scaffold-gateway
src/main/java
└── com.example.scaffold.gateway
├── filter # 全局过滤器(JWT校验、请求日志)
├── config # 网关动态路由配置
└── exception # 网关层异常处理
scaffold-auth
src/main/java
└── com.example.scaffold.auth
├── config # Spring Security配置
├── controller # 登录/登出接口
├── service # 用户权限校验逻辑
└── security # 安全相关(JWT过滤器、密码加密)
@RestController
+ @Validated
。
@Service
+ @Transactional
(事务控制)。
BaseMapper<T>
。
@TableName
+ @TableField
。
RedisTemplate
或 @Cacheable
集成。
@Async
或消息队列(如RocketMQ)解耦。
Spring Boot Actuator
暴露健康检查端点。
新增业务模块(如订单服务):
pom.xml
的 <modules>
中添加 <module>scaffold-order</module>
。
scaffold-user
模块结构,修改包名为 com.example.scaffold.order
。
依赖引用:
在子模块中按需继承父工程依赖:
<!-- 示例:用户模块依赖common模块 -->
<dependency>
<groupId>com.example</groupId>
<artifactId>scaffold-common</artifactId>
<version>1.0.0</version>
</dependency>
接口开发流程:
entity
包定义数据库实体 → 在 mapper
包编写Mapper接口 → 在 service
包实现业务逻辑 → 在 controller
包暴露API。
通过此结构,开发人员只需关注 业务代码(如 UserService
实现),无需处理底层技术细节。
本篇的分享就到这里了,感谢观看,如果对你有帮助,别忘了点赞+收藏+关注。 后续将继续把后续步骤继续完善,有什么遗漏、或者对什么功能有缺失的可以评论区,指出来,共同成长共同进步。