6.8 KiB
6.8 KiB
Spring Boot 后端配置指南
已完成的工作
我已经为你创建了一个完整的 Spring Boot 后端项目,包含以下功能:
✅ 实现的接口
-
认证接口
POST /auth/login- 用户登录GET /auth/getUserInfo- 获取用户信息POST /auth/refreshToken- 刷新令牌GET /auth/error- 自定义错误
-
路由接口
GET /route/getConstantRoutes- 获取常量路由GET /route/getUserRoutes- 获取用户路由GET /route/isRouteExist- 检查路由是否存在
📁 项目结构
backend/
├── pom.xml # Maven 配置
├── src/main/
│ ├── java/com/soybean/admin/
│ │ ├── SoybeanAdminApplication.java # 启动类
│ │ ├── common/
│ │ │ └── Result.java # 统一响应格式
│ │ ├── config/
│ │ │ ├── WebConfig.java # Web 配置(CORS)
│ │ │ └── InterceptorConfig.java # 拦截器配置
│ │ ├── controller/
│ │ │ ├── AuthController.java # 认证控制器
│ │ │ └── RouteController.java # 路由控制器
│ │ ├── dto/ # 数据传输对象
│ │ ├── entity/
│ │ │ ├── User.java # 用户实体
│ │ │ └── Route.java # 路由实体
│ │ ├── exception/
│ │ │ └── GlobalExceptionHandler.java # 全局异常处理
│ │ ├── interceptor/
│ │ │ └── AuthInterceptor.java # JWT 认证拦截器
│ │ ├── mapper/
│ │ │ ├── UserMapper.java # 用户 Mapper
│ │ │ └── RouteMapper.java # 路由 Mapper
│ │ ├── service/
│ │ │ ├── AuthService.java # 认证服务
│ │ │ └── RouteService.java # 路由服务
│ │ └── util/
│ │ └── JwtUtil.java # JWT 工具类
│ └── resources/
│ ├── application.yml # 应用配置
│ └── sql/
│ └── init.sql # 数据库初始化脚本
├── start.bat # Windows 启动脚本
└── README.md # 项目说明文档
🚀 启动步骤
1. 初始化数据库
# 方式一:使用 MySQL 命令行
mysql -u root -p < backend/src/main/resources/sql/init.sql
# 方式二:登录 MySQL 后执行
mysql -u root -p
source backend/src/main/resources/sql/init.sql
这将创建:
- 数据库:
soybean_admin - 表:
sys_user(用户表)、sys_route(路由表) - 默认用户:
- 管理员:admin / admin123
- 普通用户:user / user123
2. 启动后端服务
# 进入后端目录
cd backend
# 方式一:使用 Maven 启动
mvn spring-boot:run
# 方式二:Windows 双击启动脚本
start.bat
# 方式三:编译后运行
mvn clean package
java -jar target/soybean-admin-backend-1.0.0.jar
服务将在 http://localhost:8080 启动。
3. 配置前端连接后端
修改前端项目的环境配置文件:
.env.test (开发环境)
# 将 Mock 地址改为本地后端地址
VITE_SERVICE_BASE_URL=http://localhost:8080
.env.prod (生产环境)
# 生产环境后端地址
VITE_SERVICE_BASE_URL=http://localhost:8080
4. 启动前端项目
# 安装依赖(如果还没安装)
pnpm install
# 启动开发服务器
pnpm dev
🧪 测试接口
使用 curl 测试登录
curl -X POST http://localhost:8080/auth/login \
-H "Content-Type: application/json" \
-d "{\"userName\":\"admin\",\"password\":\"admin123\"}"
预期响应:
{
"code": "0000",
"msg": "success",
"data": {
"token": "eyJhbGc...",
"refreshToken": "eyJhbGc..."
}
}
使用 token 获取用户信息
curl -X GET http://localhost:8080/auth/getUserInfo \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
📊 数据库表结构
sys_user (用户表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| user_id | VARCHAR(50) | 用户ID |
| user_name | VARCHAR(50) | 用户名 |
| password | VARCHAR(100) | 密码 |
| roles | VARCHAR(200) | 角色(逗号分隔) |
| buttons | VARCHAR(500) | 按钮权限(逗号分隔) |
| status | INT | 状态:1-启用,2-禁用 |
| deleted | INT | 删除标记 |
| create_time | DATETIME | 创建时间 |
| update_time | DATETIME | 更新时间 |
sys_route (路由表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| route_id | VARCHAR(50) | 路由ID |
| name | VARCHAR(50) | 路由名称 |
| path | VARCHAR(200) | 路由路径 |
| component | VARCHAR(200) | 组件路径 |
| meta | TEXT | 元信息(JSON) |
| roles | VARCHAR(200) | 可访问角色 |
| order_num | INT | 排序号 |
| status | INT | 状态 |
| deleted | INT | 删除标记 |
| create_time | DATETIME | 创建时间 |
| update_time | DATETIME | 更新时间 |
🔐 默认账号
| 用户名 | 密码 | 角色 | 权限 |
|---|---|---|---|
| admin | admin123 | R_SUPER, R_ADMIN | 所有权限 |
| user | user123 | R_USER | 查看权限 |
⚙️ 配置说明
JWT 配置
在 application.yml 中:
jwt:
secret: soybean-admin-secret-key-2024-spring-boot-jwt-token
expiration: 7200000 # 2小时
refresh-expiration: 604800000 # 7天
数据库配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/soybean_admin
username: root
password: root
🎯 下一步
- 添加新菜单:在数据库
sys_route表中插入新路由 - 添加新用户:在数据库
sys_user表中插入新用户 - 权限控制:通过
roles字段控制路由访问权限 - 密码加密:建议在生产环境使用 BCrypt 加密密码
❗ 注意事项
-
生产环境:
- 修改 JWT 密钥
- 使用密码加密(BCrypt)
- 配置 HTTPS
- 添加日志文件输出
- 配置数据库连接池
-
开发环境:
- 确保 MySQL 服务已启动
- 确保端口 8080 未被占用
- 检查 Java 版本(需要 JDK 17+)
🐛 常见问题
1. 端口被占用
修改 application.yml 中的端口:
server:
port: 8081
2. 数据库连接失败
检查 MySQL 服务是否启动,用户名密码是否正确。
3. Maven 依赖下载慢
配置国内镜像源(阿里云)。
📞 技术支持
如有问题,请查看:
backend/README.md- 详细文档- 日志输出 - 查看错误信息
- MySQL 日志 - 检查数据库问题
现在你可以开始使用完整的前后端分离系统了!🎉