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

校易淘实训|Vue3+SpringBoot+MySQL 前后端分离项目从零搭建完整流程 + 全套踩坑解决方案

标签:#Vue3 #SpringBoot #前后端分离 #MyBatis-Plus #校园二手平台字数:约 1200 字

一、项目前言

本次实训我们开发校园二手交易平台「校易淘」,采用标准前后端分离架构。本文完整记录从零搭建前后端基础工程、数据库设计、跨域配置、接口联调全过程,把开发时遇到的端口冲突、跨域、MyBatis 映射、时区报错等高频问题一次性给出解决方案,适合刚接触前后端分离的同学参考。

二、开发工具准备

  1. 后端:IDEA 2024、Maven3.8、MySQL8.0、Navicat
  2. 前端:VSCode、Node16、npm、Vite
  3. 辅助工具:Postman 接口测试、Git 代码管理

三、后端 SpringBoot 项目搭建

  1. 初始化依赖 新建 SpringBoot 工程,勾选核心依赖: Spring Web、MySQL Driver、MyBatis-Plus Starter、Lombok、Validation、WebSocket(预留聊天模块) pom.xml 核心依赖片段:

xml

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
  1. application.yml 配置

yaml

server: port: 8080 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/campus_trade?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root mybatis-plus: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.trade.entity configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  1. 基础配置类
  • 跨域 CorsConfig:解决前端 8081 访问后端 8080 跨域拦截
  • MyBatisPlus 分页插件配置
  • 全局统一返回结果类 Result、全局异常处理器 GlobalExceptionHandler

四、前端 Vue3 项目搭建

  1. Vite 创建项目

bash

npm create vite@latest campus-front -- --template vue cd campus-front npm install npm install element-plus axios vue-router@4 pinia
  1. 全局封装 Axios 请求,统一添加请求头 token、统一拦截错误
  2. 路由 Router 搭建,划分登录页、首页、商品、订单、聊天、个人中心路由
  3. 配置 vite.config.js 代理,转发 /api 请求到后端localhost:8080

js

server: { proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') } } }

五、数据库基础表设计

创建数据库 campus_trade,核心基础表 user 用户表:

sql

CREATE TABLE `user` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `stu_id` varchar(20) NOT NULL COMMENT '学号(唯一登录凭证)', `username` varchar(30) DEFAULT NULL COMMENT '昵称', `password` varchar(100) NOT NULL COMMENT '密码加密存储', `avatar` varchar(255) DEFAULT NULL COMMENT '头像', `create_time` datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uk_stuid` (`stu_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

六、联调测试与全套踩坑汇总

  1. 跨域报错:未配置 CorsConfig,前端请求 403,新增全局跨域配置解决;
  2. 数据库时区异常:url 添加 serverTimezone=Asia/Shanghai;
  3. Lombok 失效:IDEA 安装 Lombok 插件、开启注解支持;
  4. MyBatis 下划线转驼峰不生效:开启 map-underscore-to-camel-case;
  5. Vite 代理失效:接口路径统一加 /api 前缀,后端接口统一匹配。

七、个人实操心得

搭建基础框架是整个项目地基,前期规范配置、统一返回格式、提前处理跨域和分页,能大幅减少后续模块开发的重复 bug。前后端分离一定要约定统一接口规范,否则多人开发极易出现对接冲突。

http://www.jsqmd.com/news/1096952/

相关文章:

  • Three.js 简单碰撞检测教程
  • 告别安卓模拟器:3分钟学会在Windows上直接安装APK应用
  • 3分钟掌握Resemble Enhance:终极AI语音降噪增强神器
  • Spring Boot 与 Solon 比较,相互迁移实战指南
  • Cadence Allegro PCB Designer实战:从零到一绘制标准PCB封装
  • qrcode.vue:Vue生态中的专业二维码生成解决方案
  • Parsedown终极指南:3步打造高效Markdown解析工作流
  • 杨洋亮相青岛啤酒“白啤更懂夏的嗨”派对 共赴夏日之约
  • Kazumi番剧播放器:如何通过插件扩展实现全网动漫自由观看
  • 【全网最详细】Sucrose Wallpaper Engine下载免费版 动态桌面壁纸软件安装图解(2026最新)
  • 从Wireshark到NpCap:动手构建网络协议解析与流量监控工具
  • ArkTS常用组件知识点整理
  • AGGrid自定义cellRenderer下tooltipShowMode不生效如何处理?
  • 3步搞定艾尔登法环存档管理:终极角色迁移方案
  • Multisim14丨界面布局异常恢复丨实战排查指南
  • 从零到一:基于STM8的125KHz RFID读卡器实现与曼彻斯特码解析实战
  • ORBSLAM3实战:手把手教你将KITTI数据集适配VIO/IMU模式,并完成精度评估
  • OpenAI API 0613更新深度解析:从GPT-3.5-turbo-16k到函数调用的实战指南
  • 红帽 Linux 零基础完整学习笔记 5
  • 从跑分到洞察:CPU性能评估工具全解析与实战指南
  • Yahoo Finance API:.NET开发者的金融数据革命性解决方案
  • 从编译产物到智能索引:详解gen_compile_commands.py生成compile_commands.json的实战路径
  • 从理论到实践:积极心理学与情绪智慧如何赋能研究生科研与生活
  • 深度解析Untrunc:开源视频修复工具的技术实现与实战应用
  • Python量化交易数据获取的终极解决方案:efinance免费金融数据库完全指南
  • AI智能审核技术架构解析:规则引擎与大模型协同的双重拦截
  • MCP 会取代 API 吗?普通开发者应该怎么理解它?
  • 20美元革命性突破:打造你的专属超声波定向音响系统
  • 深圳亚马逊卖家做GEO,哪家能提升站外AI流量?
  • STM32F407硬件SPI驱动GD25Q32闪存,从接线到读写数据的保姆级教程