springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)

环境搭建

前端环境搭建

在资料的day01中有个“前端运行环境”的文件夹,将其中的"nginx-1.20.2"文件夹解压到非中文目录下,然后直接点击文件夹中的nginx.exe(闪退不要紧)。
然后在浏览器中直接输入localhost,如果出现以下页面,即说明前端启动成功。
在这里插入图片描述

启动失败解决方案

如果没有,可能原因是80端口被占用。

  1. 可以选择修改“nginx-1.20.2”下的“conf”的“nginx.conf"的80端口,改为其他端口
    server{
    	listen		80;
    
  2. 也可以选择将占用80端口的应用程序关闭掉。cmd打开命令行后输入以下命令
    netstat -ano | findstr 80 
    
    发现出现如下页面:
    在这里插入图片描述
    最后的14469等便是占用端口的进程id。再在cmd窗口输入
    tasklist | findstr 14468
    
    发现出现如下页面:
    在这里插入图片描述
    说明是nginx服务占用了80端口(我这里只是做演示,所以没有真正占用端口的服务),随后可以输入以下命令直接关闭该进程,也可以去任务管理器中关闭。
    taskkill /PID 14468
    

后端环境搭建

在资料的“day01”中有个“后端初始工程”的文件夹,将其中的sky-takeout"文件夹解压出来,然后在IDEA中打开。

项目结构和子模块说明(含Entity、DTO、VO、POJO区别说明)

序号名称说明
1sky-take-outmaven父工程,统一管理依赖版本,聚合其他子模块
2sky-common子模块,存放公共类,例如:工具类、常量类、异常类等
3sky-pojo子模块,存放实体类、VO、DTO等
4sky-server子模块,后端服务,存放配置文件、Controller、Service、Mapper等

分析sky-common模块的每个包的作用:

名称说明
constant存放相关常量类
context存放上下文类
enumeration项目的枚举类存储
exception存放自定义异常类
json处理json转换的类
properties存放SpringBoot相关的配置属性类
result返回结果类的封装
utils常用工具类

分析sky-pojo模块的每个包的作用:

名称说明
Entity实体,通常和数据库中的表对应
DTO数据传输对象,通常用于程序中各层之间传递数据,即前端传后端的数据
VO视图对象,为前端展示数据提供的对象,即后端传前端的数据
POJO普通Java对象,只有属性和对应的getter和setter。以上的三个一般都是POJO对象

分析sky-server模块的每个包的作用:

名称说明
config存放配置类
controller存放controller类
interceptor存放拦截器类
mapper存放mapper接口
service存放service类
SkyApplication启动类

Git初始化

创建git本地仓库

创建git本地仓库
在这里插入图片描述
当Idea中出现:

在这里插入图片描述
说明本地仓库创建成功。

然后开始提交:
在这里插入图片描述

中间出现,点击commit即可。(这只是因为项目初始化代码还不完善,有错误,被git检查到了而已)
在这里插入图片描述

创建git远程仓库并推送

访问https://gitee.com/,新建仓库,复制url作为备用。
然后打开git的远程仓库管理,可以从以下两种地方打开:

  • 第一种方法在这里插入图片描述
  • 第二种方法
    在这里插入图片描述

然后将url粘贴进如下页面。
在这里插入图片描述
然后点击推送,发现gitee的仓库里新增内容,即推送成功。
在这里插入图片描述

表环境搭建

在资料的“day01”中有个“数据库”的文件夹,用Navicat等数据库工具运行其中的sky.sql"文件。
发现新增数据库sky_take_out,且新增如下表:

序号表名中文名
1employee员工表
2category分类表
3dish菜品表
4dish_flavor菜品口味表
5setmeal套餐表
6setmeal_dish套餐菜品关系表
7user用户表
8address_book地址表
9shopping_cart购物车表
10orders订单表
11order_detail订单明细表

启动后端代码

  1. 修改项目子模块sky-server下的application-dev.yml的数据库连接信息,将用户名和密码换为自己的数据库用户名和密码。
  2. 检查自己的jdk和项目所需的jdk是否版本一致,该项目所用的是java8,语言级别也为8。那么就要打开项目结构设置,确认自己的项目设置下的“项目”的SDK和语言级别,“模块”下的“语言级别”,平台设置下的“SDK”。
  3. 检查自己的文件编码格式与项目的文件编码格式是否一致。该项目所用的是UTF-8,那么就检查自己项目的文件编码是否也为UTF-8。
  4. 以上若有修改,需要重新构建项目,再启动项目看是否报错
    在这里插入图片描述

启动报错java.nio.charset.MalformedInputException: Input length = 2

若启动报错如下:

15:33:55.840 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 2
……
Caused by: java.nio.charset.MalformedInputException: Input length = 2

说明文件编码不对,注意修改文件编码后要重新构建项目。

### 修改Nginx默认欢迎页面的方法 对于苍穹外卖项目中的Nginx配置,默认情况下访问会显示'Welcome to nginx!'页面。为了自定义这个页面,可以按照如下方法操作。 #### 定位并编辑Nginx配置文件 通常Nginx的主要配置文件位于安装目录下的`conf/nginx.conf`或者在某些Linux发行版中可能存在于`/etc/nginx/nginx.conf`。如果是在Windows环境下运行,并且通过上述方式启动Nginx服务,则应该查找对应的路径下是否存在此文件[^1]。 #### 创建新的HTML文件作为首页 准备个新的静态网页文件来替代原有的默认页。假设命名为`index.html`,将其放置于合适的位置,比如项目的根目录或是专门用于存放静态资源的文件夹内。 #### 更新server块内的location设置 打开`nginx.conf`文件,在其中找到类似于下面这样的`server{}`区块: ```nginx server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } } ``` 这里的关键在于调整`root`指令指向新创建的`index.html`所在位置;同时确保`index`指令包含了该文件名。例如,如果将`index.html`放在了D:\project\static_files目录下,则应如此修改: ```nginx server { ... location / { root D:/project/static_files/; index index.html; } ... } ``` 完成以上更改之后保存文件,并重启Nginx使改动生效。可以通过命令行工具执行`nginx -s reload`来进行平滑重载而不必完全停止再重新启动整个服务器进程。 #### 验证效果 最后步就是验证是否成功替换了原来的欢迎界面。可以在浏览器地址栏输入http://localhost查看结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shanshandeisu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值