news 2026/7/20 11:12:43

Java 企业级 SaaS 架构 B2C 微信小程序电商项目实战训练营03-从 Maven 多模块构建到 Shiro+JWT 认证鉴权体系

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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`
    • 九、统一返回封装 ApiResult
      • 9.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 后端的工程化实践,涵盖以下三大板块:

  1. Maven 多模块架构:父子工程的版本管理、9 大子模块的职责边界与依赖关系
  2. 基础工程搭建与配置管理:Spring Boot 启动类注解解析、多环境 Profile 联动、核心组件配置
  3. 核心框架开发:统一返回封装ApiResult、全局异常处理、Shiro+JWT 认证鉴权体系、AOP 日志、XSS 防护、参数校验

二、Maven 多模块架构设计

2.1 父 POM 聚合结构

wind Shop 根目录的pom.xml作为父工程,统一管理所有子模块和依赖版本。其打包类型必须为pom,表明该工程不产出 JAR/WAR,仅作为聚合容器和依赖管理中心。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 11:12:37

洛雪音乐音源完整指南:免费获取全网音乐资源的终极方案

洛雪音乐音源完整指南:免费获取全网音乐资源的终极方案 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 想要免费收听全网最新最全的音乐吗?洛雪音乐音源就是你的完美选择&a…

作者头像 李华
网站建设 2026/7/20 11:11:42

主流量化软件导出的交易明细,至少要核对这8个字段

主流量化软件导出的交易明细,至少要能解释证券、信号时间、计划动作、委托、成交、费用、仓位和策略版本。牛股王股票这类低门槛股票量化工具适合普通投资者查看回测、调仓提醒与风控记录;QMT和PTrade用于券商侧时,还要保留订单ID、成交回报和…

作者头像 李华
网站建设 2026/7/20 11:10:09

TMS320F28P65x EMIF SDRAM控制器配置:从原理到实战的嵌入式内存管理

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于TI C2000系列微控制器(如TMS320F28P65x)的高性能实时控制应用中,外部SDRAM的引入极大地扩展了系统的数据存储和处理能力。然而,与简单的SRAM或Flash不同,…

作者头像 李华
网站建设 2026/7/20 11:08:47

AM275x计数器过滤寄存器:基于系统状态与功耗的定时器精细化控制

1. 项目概述与核心价值 在嵌入式实时控制系统的开发中,计数器/定时器(Counter/Timer)的精确与可靠是系统稳定性的基石。我们常常用它来测量脉冲宽度、生成精确的PWM波形、或者作为系统的心跳节拍。然而,在实际项目中,尤…

作者头像 李华