news 2026/9/16 9:58:01

SpringBoot+SSM实战:苍穹外卖项目环境搭建指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot+SSM实战:苍穹外卖项目环境搭建指南

1. 苍穹外卖项目环境搭建概述

作为Java开发者接触企业级项目的第一步,环境配置往往决定了后续开发的顺畅程度。苍穹外卖作为黑马程序员推出的SpringBoot+SSM实战项目,其环境搭建涉及前后端分离架构下的多项技术栈配置。与常见的教学项目不同,这套环境需要同时支持管理后台(Vue.js)和小程序端的联调开发,这对本地开发环境的完整性提出了更高要求。

我在首次配置这个项目环境时,曾因忽略了Nginx的路径配置导致前端资源加载失败,也遇到过MySQL版本差异引发的字符集问题。本文将结合这些实际踩坑经验,详细介绍从零开始搭建苍穹外卖开发环境的完整流程,特别针对Windows系统下的特殊配置项进行说明。

2. 基础开发环境准备

2.1 JDK与Maven配置

推荐使用JDK 1.8(官方兼容性最佳)配合Maven 3.6+:

# 验证安装 java -version mvn -v

在Maven的settings.xml中建议配置阿里云镜像:

<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>

注意:苍穹外卖的pom.xml中已指定SpringBoot 2.7.x版本,不要随意升级主版本号,否则可能引发依赖冲突。

2.2 MySQL数据库部署

项目要求MySQL 5.7+,三个关键配置项需要注意:

  1. 字符集设置为utf8mb4
  2. 关闭ONLY_FULL_GROUP_BY模式
  3. 时区设置为Asia/Shanghai

初始化数据库时直接执行提供的sky.sql脚本:

mysql> source /path/to/sky.sql

我曾遇到Navicat导入SQL文件时报错,原因是默认字符集不匹配。解决方案是在连接配置中显式指定字符集:

连接名:sky_takeout 主机:localhost 端口:3306 字符集:utf8mb4 排序规则:utf8mb4_general_ci

2.3 Redis安装与配置

Redis 5.0+即可满足需求,Windows用户可以使用:

  1. 官方推荐的WSL2方式安装
  2. 或使用微软维护的Redis-Windows版本

关键配置项:

# redis.windows.conf maxmemory 256mb appendonly yes requirepass 123456 # 与application-dev.yml中的配置保持一致

3. 前端环境配置

3.1 Nginx服务部署

项目前端资源已打包在nginx-1.20.2目录中,需要特别注意:

  1. 将整个nginx目录放在非中文路径
  2. 修改conf/nginx.conf中的关键配置:
server { listen 80; server_name localhost; # 管理端静态资源 location / { root html/sky-admin; index index.html; } # 反向代理配置 location /api/ { proxy_pass http://localhost:8080/admin/; proxy_set_header Host $host; } }

常见问题排查:

  • 端口冲突:使用netstat -ano|findstr "80"检查端口占用
  • 跨域问题:确保proxy_pass地址与后端服务一致
  • 静态资源404:检查root路径是否正确指向打包后的dist目录

3.2 小程序开发环境

微信开发者工具需要配置:

  1. 导入mp-weixin目录作为小程序项目
  2. 在详情中勾选"不校验合法域名"(开发阶段)
  3. 修改app.js中的基础API地址:
const baseUrl = 'http://localhost/api'

4. 后端工程配置

4.1 IDEA项目导入

使用IntelliJ IDEA导入项目时注意:

  1. 选择sky-take-out目录下的pom.xml作为根项目
  2. 等待Maven自动下载依赖(首次可能较久)
  3. 配置JDK 1.8和正确的Maven路径

项目结构说明:

sky-take-out ├── sky-common # 公共模块 ├── sky-pojo # 实体类 └── sky-server # 主服务模块

4.2 配置文件调整

修改sky-server中的application-dev.yml:

spring: datasource: url: jdbc:mysql://localhost:3306/sky_take_out?useSSL=false&serverTimezone=Asia/Shanghai username: root password: 123456 redis: host: localhost port: 6379 password: 123456 database: 0 jwt: admin-secret-key: sky-take-out-2023 # 生产环境需要修改

4.3 启动项配置

在SkyApplication启动类中:

  1. 添加@MapperScan注解指定Mapper接口路径
  2. 配置Tomcat端口为8080(与Nginx代理匹配)
  3. 建议开启热部署:
@SpringBootApplication @MapperScan("com.sky.mapper") public class SkyApplication { public static void main(String[] args) { SpringApplication.run(SkyApplication.class, args); } }

5. 联调测试与常见问题

5.1 登录功能测试

访问http://localhost后,使用默认账号登录:

  • 用户名:admin
  • 密码:123456

后端登录流程:

  1. 前端请求 → Nginx → 后端Controller
  2. JWT令牌生成与验证
  3. 密码MD5加密比对(注意数据库密码需要预先加密)

5.2 接口文档集成

Knife4j文档访问地址:

http://localhost:8080/doc.html

配置要点:

@Bean public Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(new ApiInfoBuilder() .title("苍穹外卖API文档") .version("1.0") .build()) .select() .apis(RequestHandlerSelectors.basePackage("com.sky.controller")) .paths(PathSelectors.any()) .build(); }

5.3 典型问题解决方案

  1. Nginx代理失败

    • 检查proxy_pass末尾是否带/(决定URL重写方式)
    • 查看error.log中的具体错误信息
  2. 数据库连接异常

    • 确认时区参数?serverTimezone=Asia/Shanghai
    • 检查MySQL用户权限
  3. Redis连接超时

    • 关闭防火墙或添加端口例外
    • 确认requirepass与配置一致
  4. 前端资源加载不全

    • 浏览器强制刷新(Ctrl+F5)
    • 检查Nginx的root路径大小写

经过以上步骤,你应该已经完成了苍穹外卖项目的完整环境搭建。建议在启动所有服务后,按照"Nginx → MySQL → Redis → 后端服务 → 前端页面"的顺序进行依赖检查。这套环境配置方案已在Windows 10/11和macOS Ventura上验证通过,如遇特殊环境问题,可以尝试调整组件版本号或查看项目的GitHub Issues区获取解决方案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 9:56:37

5G-MIMO下NOMA与OMA性能对比仿真:原理与MATLAB实现

简介&#xff1a;面向5G通信方向学习者与科研人员&#xff0c;这份MATLAB仿真资源聚焦NOMA非正交多址和OMA正交多址在5G-MIMO系统中的性能对比&#xff0c;适合课程设计、毕业设计或预研验证。基于MATLAB 2022a环境&#xff0c;代码包含MIMO-NOMA与MIMO-OMA可达速率的完整实现&…

作者头像 李华
网站建设 2026/9/16 9:56:23

WinForm布局核心机制与容器选型实战:Dock、Anchor、DPI适配全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 9:54:50

光伏储能虚拟同步发电机并网系统仿真实践

1. 光伏储能虚拟同步发电机并网系统概述光伏储能虚拟同步发电机&#xff08;VSG&#xff09;技术是当前新能源并网领域的前沿研究方向。这项技术的核心思想是通过电力电子变换器和先进控制算法&#xff0c;使光伏发电系统能够模拟传统同步发电机的运行特性&#xff0c;从而解决…

作者头像 李华
网站建设 2026/9/16 9:54:32

Nano Banana Pro芯片如何革新AI设计工具效率

1. 椒图AI初体验&#xff1a;当设计工具遇上Nano Banana Pro芯片第一次打开椒图AI的启动界面时&#xff0c;那个闪烁着金属光泽的香蕉图标就让我意识到这不太寻常。作为从业十年的视觉设计师&#xff0c;我测试过的设计工具不下百款&#xff0c;但搭载专用AI加速芯片的修图软件…

作者头像 李华
网站建设 2026/9/16 9:54:22

D85163高精度RTC芯片:温度补偿与超低功耗的刚性平衡

1. 这颗芯片不是“时间显示器”&#xff0c;而是嵌入式系统里沉默的守夜人D85163 高精度低功耗 IC 实时时钟/日历芯片——光看型号和参数&#xff0c;很多人第一反应是“又一颗RTC”&#xff0c;随手扔进BOM表就完事。但我在做工业数据采集终端、智能电表、便携医疗设备这三类项…

作者头像 李华
网站建设 2026/9/16 9:54:00

OpenClaw办公自动化实战:私有化部署与效率提升

1. 从安装到办公助手&#xff1a;我的OpenClaw深度改造实录第一次在终端看到那只龙虾图标时&#xff0c;我就知道这不仅仅是又一个AI玩具。作为常年被邮件、会议和文档淹没的咨询顾问&#xff0c;过去一个月我把OpenClaw改造成了真正的数字同事。现在它不仅能处理80%的行政工作…

作者头像 李华