- 添加 Lombok 配置支持 - 完善枚举类和常量定义 - 新增工具类(TraceId、限流、OSS 等) - 添加切面(日志、限流、TraceId) - 更新数据库索引规范(应用层防重) - 登录页面样式优化 - 前后端项目文档补充 |
||
|---|---|---|
| .. | ||
| src/main | ||
| .gitignore | ||
| lombok.config | ||
| pom.xml | ||
| README.md | ||
Creation Java Backend
Spring Boot 后端基础框架
技术栈
| 组件 | 技术 | 版本 |
|---|---|---|
| 框架 | Spring Boot | 3.2.4 |
| 持久层 | MyBatis-Plus | 3.5.5 |
| 数据库 | MySQL 8.0 | 8.0.33 |
| 迁移 | Flyway | 10.10.0 |
| 认证 | Spring Security + JWT | 0.12.3 |
| 缓存 | Redis | - |
| 连接池 | Alibaba Druid | 1.2.20 |
| 对象映射 | MapStruct | 1.5.5.Final |
| API 文档 | Knife4j | 4.4.0 |
| 日志 | Logback | - |
| JSON | FastJSON2 | 2.0.43 |
| 工具类 | Hutool | 5.8.26 |
快速开始
环境要求
- Java 17+
- Maven 3.8+
- MySQL 8.0+
- Redis 6.0+
配置数据库
- 创建数据库
CREATE DATABASE creation_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 修改
src/main/resources/application-dev.yml中的数据库连接信息
启动应用
cd java-backend
mvn spring-boot:run -Dspring-boot.run.profiles=dev
启动成功后访问:
项目结构
java-backend/
├── src/main/java/com/lesingle/creation/
│ ├── CreationApplication.java # 启动类
│ ├── common/ # 公共模块
│ │ ├── config/ # 配置类
│ │ │ ├── MybatisPlusConfig.java
│ │ │ ├── SecurityConfig.java
│ │ │ └── JwtProperties.java
│ │ ├── constant/ # 常量定义
│ │ │ └── ErrorCode.java
│ │ ├── core/ # 核心类
│ │ │ └── Result.java
│ │ ├── exception/ # 异常处理
│ │ │ ├── BusinessException.java
│ │ │ └── GlobalExceptionHandler.java
│ │ ├── filter/ # 过滤器
│ │ │ └── JwtAuthenticationFilter.java
│ │ └── util/ # 工具类
│ │ └── JwtTokenUtil.java
│ ├── controller/ # 控制器
│ ├── service/ # 服务层
│ ├── mapper/ # Mapper 接口
│ ├── entity/ # 实体类
│ ├── dto/ # 数据传输对象
│ └── vo/ # 视图对象
├── src/main/resources/
│ ├── application.yml # 主配置
│ ├── application-dev.yml # 开发环境
│ ├── application-test.yml # 测试环境
│ ├── application-prod.yml # 生产环境
│ ├── db/migration/ # Flyway 迁移脚本
│ │ └── V1.0__init_schema.sql
│ └── logback-spring.xml # 日志配置
└── pom.xml # Maven 配置
默认账户
Flyway 初始迁移后会自动创建以下账户:
| 用户名 | 密码 | 角色 |
|---|---|---|
| admin | admin123 | 超级管理员 |
开发规范
三层架构
| 层级 | 职责 | 数据流 |
|---|---|---|
| Controller | 接收请求、参数校验 | DTO ↔ VO |
| Service | 业务逻辑、事务控制 | 使用 Entity |
| Mapper | 数据库 CRUD | 使用 Entity |
代码规范
- Java 17 严格模式
- 注释和日志使用中文
- 使用 Lombok 简化代码
- 使用 MapStruct 进行对象映射
日志规范
- 所有日志使用中文
- 使用 MDC 实现 TraceId 链路追踪
- 开发环境:DEBUG 级别
- 生产环境:INFO/WARN 级别
常用命令
# 编译
mvn clean compile
# 打包
mvn clean package
# 运行(开发环境)
mvn spring-boot:run -Dspring-boot.run.profiles=dev
# 运行(测试环境)
mvn spring-boot:run -Dspring-boot.run.profiles=test
# 运行(生产环境)
mvn spring-boot:run -Dspring-boot.run.profiles=prod
# 跳过测试打包
mvn clean package -DskipTests
# 查看依赖
mvn dependency:tree
API 接口
认证相关
POST /api/auth/login- 用户登录POST /api/auth/logout- 用户登出POST /api/auth/register- 用户注册POST /api/auth/refresh- 刷新 Token
用户相关
GET /api/users- 用户列表GET /api/users/{id}- 获取用户详情POST /api/users- 创建用户PUT /api/users/{id}- 更新用户DELETE /api/users/{id}- 删除用户
环境变量(生产环境)
生产环境部署时需设置以下环境变量:
| 变量名 | 说明 | 示例 |
|---|---|---|
DATABASE_URL |
数据库连接 URL | jdbc:mysql://host:3306/db |
DB_USERNAME |
数据库用户名 | root |
DB_PASSWORD |
数据库密码 | password |
REDIS_HOST |
Redis 主机 | localhost |
REDIS_PORT |
Redis 端口 | 6379 |
REDIS_PASSWORD |
Redis 密码 | password |
JWT_SECRET |
JWT 密钥 | your-secret-key |
License
MIT