Java 企业级 SaaS 架构 B2C 微信小程序电商项目实战训练营03-从 Maven 多模块构建到 Shiro+JWT 认证鉴权体系
文章目录一、概述二、Maven 多模块架构设计2.1 父 POM 聚合结构2.2 版本号集中管理2.3 依赖管理(dependencyManagement)2.4 全局依赖(dependencies)2.5 模块依赖关系2.6 各模块职责详解2.7 典型子模块 POM 配置三、wind-common 公共模块详解3.1 包结构设计3.2 实体类设计规范3.3 枚举设计规范四、bootstrap 启动模块详解4.1 启动类注解解析4.2 配置类清单4.3 MybatisPlusConfig 详解五、config 配置模块详解5.1 属性绑定类体系5.2 JWT 配置映射5.3 常量管理六、多环境配置与 Maven Profile 联动6.1 配置文件布局6.2 Spring Profile 激活6.3 Maven Profile 配置6.4 开发环境配置6.5 生产环境配置安全要点七、核心组件配置详解7.1 服务器端口与上下文路径7.2 MyBatis-Plus YAML 配置7.3 HikariCP 数据源优化7.4 Redis Lettuce 连接池7.5 CORS 跨域配置7.6 Swagger/Knife4j 接口文档7.7 文件上传配置八、业务模块结构8.1 管理端模块 `wind-admin`8.2 店铺端模块 `wind-shop`8.3 移动端模块 `wind-front`九、统一返回封装 ApiResult9.1 设计理念9.2 ApiCode 状态码枚举与设计规则9.3 实际返回示例9.4 前端统一处理逻辑十、全局异常处理10.1 GlobalExceptionHandler 完整实现10.2 异常类层次结构10.3 业务异常使用示例十一、Shiro + JWT 认证鉴权体系11.1 整体架构11.2 JwtToken — 认证令牌实体11.3 JwtUtil — Token 工具类11.4 JwtFilter — 核心认证过滤器11.5 JwtRealm — 认证与授权11.6 ShiroConfig 组装11.7 完整登录流程11.8 Redis 三端登录态管理11.9 Token 自动刷新机制11.10 Shiro 权限过滤配置十二、AOP 日志系统12.1 日志类型与配置12.2 日志打印模式12.3 RequestId 请求追踪十三、XSS 防护13.1 三层防护架构13.2 配置启用13.3 Jackson 层防护十四、参数校验体系14.1 Hibernate Validator 使用14.2 自定义校验器示例十五、Maven 构建与打包15.1 常用构建命令15.2 编译插件配置(MapStruct + Lombok 协同)15.3 资源过滤配置15.4 测试跳过配置十六、项目首次启动验证16.1 启动前检查清单16.2 启动方式16.3 启动成功标志16.4 验证接口十七、分页封装与 BaseController 基类17.1 分页参数17.2 BaseController 与 BaseService 基类十八、常见问题与解答Q1:启动报错 `Connection refused`?Q2:`Bean name conflict` 多模块 Bean 名称冲突?Q3:Token 过期了怎么办?Q4:店铺端的 `@RequiresPermissions` 是怎么工作的?Q5:移动端(front)为什么不走 Shiro 鉴权?Q6:BusinessException 为什么不记录日志?Q7:如何实现同一个账号只能在一个设备登录?Q8:Maven 下载依赖慢?Q9:文件上传报错目录不存在?十九、实践练习练习 1:新增一个 Controller练习 2:配置属性绑定验证练习 3:实现自定义异常类型练习 4:为商品接口添加参数校验二十、总结一、概述在企业级 Java 项目开发中,一个规范的后端工程结构决定了团队协作效率和项目可维护性的上限。wind Shop 作为一个典型的单体电商应用,采用 Maven 多模块架构 + Spring Boot + MyBatis-Plus + Shiro + JWT 技术栈,将不同职责的代码隔离到独立模块中,实现了清晰的依赖关系和良好的可扩展性。本文将逐层分析 wind Shop 后端的工程化实践,涵盖以下三大板块:Maven 多模块架构:父子工程的版本管理、9 大子模块的职责边界与依赖关系基础工程搭建与配置管理:Spring Boot 启动类注解解析、多环境 Profile 联动、核心组件配置核心框架开发:统一返回封装ApiResult、全局异常处理、Shiro+JWT 认证鉴权体系、AOP 日志、XSS 防护、参数校验二、Maven 多模块架构设计2.1 父 POM 聚合结构wind Shop 根目录的pom.xml作为父工程,统一管理所有子模块和依赖版本。其打包类型必须为pom,表明该工程不产出 JAR/WAR,仅作为聚合容器和依赖管理中心。