【web应用】前后端分离项目基本框架组成:Vue + Spring Boot 最佳实践指南

文章目录


前言

本文基于真实项目经验,系统梳理前后端分离架构下的开发规范、协作流程与部署实践,适用于 Vue + Spring Boot 技术栈,帮助团队快速搭建可维护、可扩展的现代化 Web 应用。

一、项目结构与角色边界

1、整体目录约定

text 复制代码
project-root
├── frontend/            # Vue 前端
│   ├── src/api          # 接口封装
│   ├── src/views        # 业务页面
│   ├── src/router       # 前端路由
│   └── .env.*           # 多环境变量
├── backend/             # Spring Boot 后端
│   ├── src/main/java
│   │   ├── controller   # REST 接口
│   │   ├── service      # 业务逻辑
│   │   ├── repository   # 数据访问
│   │   └── config       # 统一配置
│   └── pom.xml
├── deploy/              # Docker & K8s 部署脚本
└── docs/                # Swagger/YApi 接口文档

2、角色职责与协作流程

阶段 前端 后端 共同点
需求评审 评估交互工作量 评估业务/数据工作量 输出接口粒度
接口定义 提供 UI 需要的数据结构 编写 Swagger/YApi 并生成 Mock 评审后锁定接口文档
开发 使用 Mock 数据并行开发 实现业务逻辑 & 单元测试 Git Flow 分支管理
联调 切换代理到真实后端 打开 Swagger 在线调试 使用 Postman 做契约测试
上线 构建静态包→CDN Docker 镜像→K8s/虚拟机 CI/CD 同 Pipeline

二、接口设计规范

1、RESTful URL + 版本控制

复制代码
GET    /api/v1/users?page=1&size=20
POST   /api/v1/users
PUT    /api/v1/users/{id}
DELETE /api/v1/users/{id}

2、统一返回体

json 复制代码
{
  "code": 0,
  "msg": "success",
  "data": { ... },
  "traceId": "c0a8644e166..."
}

3、自动生成文档

Springfox/Knife4j 一键扫描注解 → 前端可直接在线调试,无需 Postman 导入。

三、安全与质量红线

维度 实践要点
认证 JWT + Spring Security;Token 存 HttpOnly Cookie 或 Authorization Header
鉴权 @PreAuthorize("hasRole('ADMIN')")
参数校验 DTO 层 @Validated + Hibernate Validator
跨域 Spring 全局 CORS 配置或使用 Gateway 统一处理
敏感数据 统一脱敏 + 返回最小化原则
审计日志 AOP 记录所有请求耗时、参数、返回值与异常

四、前端工程化实践

  1. 请求封装 :基于 Axios 的 src/api/request.ts 自动携带 Token、统一错误提示。
  2. 环境变量.env.development / .env.production 区分代理地址。
  3. 路由守卫 :动态加载菜单 + 权限指令 v-permission
  4. 构建优化:Vite/Webpack 拆包 + CDN + Gzip,首屏 < 1.5 s。

五、后端可观测性

能力 技术方案
日志 Logback + ELK 收集
链路追踪 Spring Cloud Sleuth → Zipkin
指标 Micrometer → Prometheus → Grafana Dashboard
告警 PrometheusRule 钉钉/飞书机器人

六、部署与 CI/CD

  1. 容器化

    • 前端:nginx:alpine 静态镜像,大小 < 20 MB。
    • 后端:多阶段 Dockerfile mvn packageopenjdk:17-jre-slim
  2. 流水线示例(GitLab CI)

    yaml 复制代码
    stages: [build, docker, deploy]
    build:frontend:
      script: cd frontend && npm ci && npm run build
    build:backend:
      script: cd backend && mvn -B package -DskipTests
    deploy:k8s:
      script: helm upgrade --install app chart/
  3. 灰度发布:K8s Ingress + Nginx 权重分流,支持秒级回滚。

七、团队协作 Tips

  • 接口变更:通过 YApi 的「通知」功能告知全员,旧版本保留 2 个 Sprint。
  • Mock 数据:Mock.js 自动拦截 Ajax 请求,支持随机图片、延迟返回。
  • 代码规范:前端 ESLint + Prettier,后端 Spotless + Checkstyle,提交前 Git Hook 强制格式化。

相关推荐
ObjectX前端实验室9 分钟前
从零到一:系统化掌握大模型应用开发【目录】
前端·llm·agent
guoyp212615 分钟前
前端实验(二)模板语法
前端·vue.js
葡萄城技术团队21 分钟前
Excel 转在线协作难题破解:SpreadJS 纯前端表格控件的技术方案与实践
前端·excel
我的xiaodoujiao21 分钟前
Windows系统Web UI自动化测试学习系列3--浏览器驱动下载使用
前端·windows·测试工具·ui
一只小风华~24 分钟前
学习笔记:Vue Router 中的嵌套路由详解[特殊字符]概述
前端·javascript·vue.js
泻水置平地24 分钟前
若依前后端分离版实现前端国际化步骤
前端
Villiam_AY26 分钟前
从后端到react框架
前端·react.js·前端框架
CodeCraft Studio29 分钟前
全球知名的Java Web开发平台Vaadin上线慧都网
java·开发语言·前端·vaadin·java开发框架·java全栈开发·java ui 框架
一只小风华~36 分钟前
Vue Router 命名路由学习笔记
前端·javascript·vue.js·笔记·学习·ecmascript
我是华为OD~HR~栗栗呀40 分钟前
前端面经-高级开发(华为od)
java·前端·后端·python·华为od·华为·面试