当前位置: 首页 > news >正文

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

文章目录

  • 前言
  • 一、项目结构与角色边界
    • 1、整体目录约定
    • 2、角色职责与协作流程
  • 二、接口设计规范
    • 1、RESTful URL + 版本控制
    • 2、统一返回体
    • 3、自动生成文档
  • 三、安全与质量红线
  • 四、前端工程化实践
  • 五、后端可观测性
  • 六、部署与 CI/CD
  • 七、团队协作 Tips


前言

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

一、项目结构与角色边界

1、整体目录约定

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 做契约测试
上线构建静态包→CDNDocker 镜像→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、统一返回体

{"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)
    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 强制格式化。

http://www.xdnf.cn/news/1245097.html

相关文章:

  • 《C++初阶之STL》【模板参数 + 模板特化 + 分离编译】
  • tc 介绍
  • RHCA04--系统模块管理与资源限制
  • 26-数据仓库与Apache Hive
  • Dubbo-Go调Bug记录-泛化调用调不通
  • uniapp基础(五)调试与错误
  • Python 基础语法(二):流程控制语句详解
  • HPE磁盘阵列管理01——MSA和SMU
  • 「PromptPilot 大模型智能提示词平台」—— PromptPilot × 豆包大模型 1.6:客户投诉邮件高效回复智能提示词解决方案
  • Vlog音效大升级!用Audition环境音效打造沉浸式体验
  • 【C++】Stack and Queue and Functor
  • 【原创】基于gemini-2.5-flash-preview-05-20多模态模型实现短视频的自动化二创
  • 将普通用户添加到 Docker 用户组
  • promise类方法
  • 阿里云百炼平台创建智能体-上传文档
  • Java学习第一百零六部分——Lucene
  • 2.4 组件通信
  • deepseek、GPT与claude在MATLAB编程上的准确性对比——以卡尔曼滤波调试为例
  • 大模型之后,机器人正在等待它的“GPT-1 时刻”
  • 本机部署K8S集群
  • 力扣:2246. 相邻字符不同的最长路径
  • ESP-idf框架下的HTTP服务器\HTML 485温湿度采集并长传
  • 14.Home-新鲜好物和人气推荐实现
  • 编程算法:技术创新与业务增长的核心引擎
  • Linux操作系统从入门到实战(十三)版本控制器Git基础概念讲解
  • 深入浅出 RabbitMQ-路由模式详解
  • 自由学习记录(77)
  • 24. 前端-js框架-Vue
  • vite面试题及详细答案120题(01-30)
  • 【工程化】tree-shaking 的作用以及配置