library-picturebook-activity/java-backend
2026-04-02 14:22:56 +08:00
..
src/main 暂存 2026-04-02 14:22:56 +08:00
.gitignore fix: 前后端接口对齐修复 2026-03-28 18:53:24 +08:00
lombok.config feat: 完善后端基础架构和登录功能 2026-03-31 13:58:28 +08:00
pom.xml feat: 完善后端基础架构和登录功能 2026-03-31 13:58:28 +08:00
README.md fix: 前后端接口对齐修复 2026-03-28 18:53:24 +08:00

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. 创建数据库
CREATE DATABASE creation_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 修改 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