二次开发入门
作者: luote (luote) · 个人主页 luote996.cn
本文面向 0 基础开发者,说明如何在脚手架基础上快速开发自己的业务功能。
若尚未掌握 HTTP、Java、Vue 等基础,请先阅读 零基础学习路线。
先搞清楚三件事
- 后端负责数据和权限:接口、数据库、登录校验都在 Spring Boot 里完成。
- 前端负责展示和交互:页面、表单、表格通过 Vue3 调用后端接口。
- 前后端通过 HTTP 接口通信:前端
axios发请求,后端返回统一 JSON 格式Result。
推荐开发顺序
不要一上来就写页面。正确顺序是:数据库 → 后端 → Swagger 验证 → 前端。
日常开发怎么启动
第一次启动
- MySQL 执行
data.sql建库建表 - 启动 Redis
- 后端复制
.env.example为.env,改数据库密码 - 后端运行
mvn spring-boot:run - 前端运行
npm install && npm run dev
日常开发
| 步骤 | 命令 | 说明 |
|---|---|---|
| 1 | 后端 mvn spring-boot:run | 改 Java 代码后需重启 |
| 2 | 前端 npm run dev | 改 Vue 代码会自动热更新 |
| 3 | 打开 Swagger | http://localhost:8080/swagger-ui.html |
| 4 | 打开前端 | http://localhost:5173 |
后端分层怎么理解
以「用户管理」为例,每一层只做一件事:
| 层级 | 目录 | 职责 |
|---|---|---|
| Controller | controller/ | 接收请求、参数校验、返回 Result |
| Service | service/ | 业务逻辑 |
| Mapper | mapper/ | 数据库读写 |
| Domain | domain/po,dto,vo | 数据对象:po 对应表,dto 接收参数,vo 返回前端 |
| Common | common/ | 公共工具、异常、常量 |
请求链路:
浏览器 → Controller → Service → Mapper → MySQL
↓
Result 返回 JSON前端目录怎么理解
| 目录 | 职责 |
|---|---|
api/ | 封装后端接口,不写页面逻辑 |
view/ | 页面,按模块分文件夹,入口固定 index.vue |
router/ | 路由,控制哪个 URL 显示哪个页面 |
store/ | 全局状态,如登录用户信息 |
layout/ | 公共布局,如顶部导航栏 |
component/ | 可复用小组件 |
请求链路:
页面 view → api 方法 → request.ts → 后端接口
↓
自动带 Token统一响应格式
后端所有接口返回:
json
{
"code": 200,
"message": "操作成功",
"data": { }
}前端 request.ts 已封装:成功时直接返回 data,失败时自动弹错误提示。
获取当前登录用户
后端业务代码中:
java
Long userId = UserContext.getUserId();
LoginUserVO user = UserContext.get();JWT 过滤器会在每次请求时把用户信息放进 ThreadLocal,Service 层可直接使用。
权限控制
- 登录即可访问:Controller 不加额外注解
- 仅管理员:加
@PreAuthorize("hasRole('ADMIN')") - 公开接口(如登录):在
application.yml的permit-urls中配置
默认 admin 账号角色为 ADMIN,可访问用户管理等管理接口。
下一步
- 实战:新增一个业务模块 — 从建表到页面的完整示例
- 注意事项与踩坑 — 二次开发必读