# InitSpringBoot2 **Repository Path**: xauat_cs1234/init-spring-boot2 ## Basic Information - **Project Name**: InitSpringBoot2 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # InitSpringBoot2 项目模板 ## 项目简介 InitSpringBoot2 是一个基于 Spring Boot 2.7.6 的初始化项目模板,整合了常用的依赖和功能,为快速开发企业级应用提供基础框架。 ### 核心特性 - **模块化架构**:采用多模块设计,便于功能扩展和维护 - **身份认证**:集成 JWT 实现无状态身份认证 - **接口鉴权**:基于 Spring Security 实现细粒度的权限控制 - **数据库操作**:整合 MyBatis-Plus 简化数据库操作 - **API 文档**:集成 Knife4j 自动生成 API 文档 - **统一异常处理**:全局异常处理机制 - **操作日志**:API 操作日志记录 - **多环境配置**:支持开发、生产环境的配置管理 ## 技术栈 | 技术 | 版本 | 用途 | |------|------|------| | Spring Boot | 2.7.6 | 应用基础框架 | | Java | 17 | 开发语言 | | MyBatis-Plus | 3.5.2 | ORM 框架 | | JWT | 0.11.2 | 身份认证 | | Knife4j | 4.4.0 | API 文档 | | P6Spy | 3.9.1 | SQL 监控 | | Lombok | 1.18.28 | 简化代码 | | Guava | 31.1-jre | 工具库 | | Commons Lang3 | 3.12.0 | 工具库 | ## 项目结构 ``` InitSpringBoot2/ ├── db/ # 数据库初始化脚本 │ └── init.sql ├── module-admin/ # 管理模块 │ └── src/main/java/com/example/admin/ │ └── config/ # 安全配置 ├── module-common/ # 公共模块 │ └── src/main/java/com/example/common/ │ ├── aspect/ # 切面(API操作日志) │ ├── config/ # 公共配置 │ ├── domain/ # 领域模型 │ ├── enums/ # 枚举类 │ ├── exception/ # 异常处理 │ └── utils/ # 工具类 ├── module-jwt/ # JWT认证模块 │ └── src/main/java/com/example/jwt/ │ ├── config/ # JWT配置 │ ├── exception/ # JWT相关异常 │ ├── filter/ # 认证过滤器 │ ├── handler/ # 认证处理器 │ ├── model/ # 模型类 │ ├── service/ # 认证服务 │ └── utils/ # JWT工具类 ├── web/ # Web模块(启动入口) │ └── src/main/ │ ├── java/com/example/web/ │ │ ├── demos/ # 示例代码 │ │ └── WebApplication.java # 应用启动类 │ └── resources/ # 资源文件 │ ├── static/ # 静态资源 │ ├── application.yml # 主配置文件 │ ├── application-dev.yml # 开发环境配置 │ └── application-prod.yml # 生产环境配置 ├── .gitignore # Git忽略文件 └── pom.xml # Maven配置文件 ``` ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 5.7+ ### 数据库初始化 1. 创建数据库 2. 执行 `db/init.sql` 脚本初始化表结构 ### 配置修改 1. 修改 `web/src/main/resources/application-dev.yml` 文件中的数据库连接信息 2. 如需修改 JWT 密钥,可使用 `JwtTokenHelper` 类的 `main` 方法生成新的 Base64 编码密钥,并更新 `application.yml` 中的 `jwt.secret` 配置 ### 构建与运行 ```bash # 构建项目 mvn clean install # 运行项目 mvn spring-boot:run -pl web ``` ### API 文档访问 项目启动后,可通过以下地址访问 API 文档: ``` http://localhost:8080/doc.html ``` ## 核心功能 ### JWT 身份认证 - **令牌生成**:登录成功后生成 JWT 令牌 - **令牌验证**:请求时通过过滤器验证令牌有效性 - **令牌解析**:从令牌中提取用户信息 - **过期处理**:令牌过期后自动失效 ### 接口鉴权 使用 Spring Security 的注解进行权限控制: ```java // 方法级别权限控制 @PreAuthorize("hasRole('ADMIN')") public void adminOnlyMethod() { // 仅管理员可访问 } // 基于表达式的权限控制 @PreAuthorize("hasPermission(#id, 'USER', 'READ')") public User getUserById(Long id) { // 基于资源的权限控制 } ``` ### 统一异常处理 - 全局异常捕获与处理 - 统一响应格式 - 业务异常定义 ### API 操作日志 通过 AOP 实现 API 操作日志记录,包括请求参数、响应结果、执行时间等信息。 ### 数据库操作 使用 MyBatis-Plus 简化数据库操作: - 自动 CRUD 操作 - 条件构造器 - 逻辑删除 - 分页查询 ## 配置说明 ### 主要配置文件 | 配置文件 | 说明 | 位置 | |---------|------|------| | application.yml | 主配置文件 | web/src/main/resources/ | | application-dev.yml | 开发环境配置 | web/src/main/resources/ | | application-prod.yml | 生产环境配置 | web/src/main/resources/ | ### JWT 配置 ```yaml jwt: issuer: jwt-demo # 令牌签发者 secret: 7B/mYO9h6P9AsCue1Hqe43QMUJz53JKjWW28dhLrSzqMGfdN/NPdRksUGYo7hBgNPnMtz+kjbdiUjr3kweabLA== # Base64编码的密钥 ``` ### MyBatis-Plus 配置 ```yaml mybatis-plus: configuration: map-underscore-to-camel-case: true # 开启驼峰命名转换 global-config: db-config: logic-not-delete-value: 0 # 逻辑删除:未删除值 logic-delete-value: 1 # 逻辑删除:已删除值 ``` ## 扩展指南 ### 添加新模块 1. 在根目录创建新模块目录 2. 在根 `pom.xml` 中添加模块引用 3. 在新模块中添加相应的配置和代码 ### 自定义权限 1. 扩展 `UserDetailServiceImpl` 实现自定义用户详情加载 2. 在 `WebSecurityConfig` 中配置权限规则 3. 使用 `@PreAuthorize` 注解进行方法级权限控制 ### 集成新功能 1. 在根 `pom.xml` 中添加依赖 2. 在相应模块中实现功能代码 3. 在 `WebApplication` 中添加必要的注解 ## 注意事项 1. 生产环境中请修改 JWT 密钥为强密钥 2. 生产环境中请关闭 API 文档 3. 生产环境中请配置 HTTPS 4. 定期更新依赖版本以修复安全漏洞 ## 许可证 MIT License ## 联系方式 如有问题或建议,欢迎联系项目维护者。