admin/BACKEND_SETUP.md

6.8 KiB
Raw Permalink Blame History

Spring Boot 后端配置指南

已完成的工作

我已经为你创建了一个完整的 Spring Boot 后端项目,包含以下功能:

实现的接口

  1. 认证接口

    • POST /auth/login - 用户登录
    • GET /auth/getUserInfo - 获取用户信息
    • POST /auth/refreshToken - 刷新令牌
    • GET /auth/error - 自定义错误
  2. 路由接口

    • 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

🎯 下一步

  1. 添加新菜单:在数据库 sys_route 表中插入新路由
  2. 添加新用户:在数据库 sys_user 表中插入新用户
  3. 权限控制:通过 roles 字段控制路由访问权限
  4. 密码加密:建议在生产环境使用 BCrypt 加密密码

注意事项

  1. 生产环境

    • 修改 JWT 密钥
    • 使用密码加密BCrypt
    • 配置 HTTPS
    • 添加日志文件输出
    • 配置数据库连接池
  2. 开发环境

    • 确保 MySQL 服务已启动
    • 确保端口 8080 未被占用
    • 检查 Java 版本(需要 JDK 17+

🐛 常见问题

1. 端口被占用

修改 application.yml 中的端口:

server:
  port: 8081

2. 数据库连接失败

检查 MySQL 服务是否启动,用户名密码是否正确。

3. Maven 依赖下载慢

配置国内镜像源(阿里云)。

📞 技术支持

如有问题,请查看:

  • backend/README.md - 详细文档
  • 日志输出 - 查看错误信息
  • MySQL 日志 - 检查数据库问题

现在你可以开始使用完整的前后端分离系统了!🎉