- 修复 sys-config 接口参数对齐(configKey/configValue) - 添加 dict 字典项管理 API - 修复 logs 接口参数格式(批量删除/清理日志) - 添加 request.ts postForm/putForm 方法支持 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
178 lines
4.9 KiB
Markdown
178 lines
4.9 KiB
Markdown
# 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+
|
||
|
||
### 配置数据库
|
||
|
||
1. 创建数据库
|
||
```sql
|
||
CREATE DATABASE creation_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
```
|
||
|
||
2. 修改 `src/main/resources/application-dev.yml` 中的数据库连接信息
|
||
|
||
### 启动应用
|
||
|
||
```bash
|
||
cd java-backend
|
||
mvn spring-boot:run -Dspring-boot.run.profiles=dev
|
||
```
|
||
|
||
启动成功后访问:
|
||
- 应用地址:http://localhost:8580
|
||
- API 文档:http://localhost:8580/swagger-ui.html
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
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 级别
|
||
|
||
## 常用命令
|
||
|
||
```bash
|
||
# 编译
|
||
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
|