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区别说明)

序号 名称 说明
1 sky-take-out maven父工程,统一管理依赖版本,聚合其他子模块
2 sky-common 子模块,存放公共类,例如:工具类、常量类、异常类等
3 sky-pojo 子模块,存放实体类、VO、DTO等
4 sky-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本地仓库
springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)_第1张图片
当Idea中出现:

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

然后开始提交:
springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)_第2张图片

中间出现,点击commit即可。(这只是因为项目初始化代码还不完善,有错误,被git检查到了而已)
springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)_第3张图片

创建git远程仓库并推送

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

  • 第一种方法springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)_第4张图片
  • 第二种方法
    springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)_第5张图片

然后将url粘贴进如下页面。
springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)_第6张图片
然后点击推送,发现gitee的仓库里新增内容,即推送成功。
springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)_第7张图片

表环境搭建

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

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

启动后端代码

  1. 修改项目子模块sky-server下的application-dev.yml的数据库连接信息,将用户名和密码换为自己的数据库用户名和密码。
  2. 检查自己的jdk和项目所需的jdk是否版本一致,该项目所用的是java8,语言级别也为8。那么就要打开项目结构设置,确认自己的项目设置下的“项目”的SDK和语言级别,“模块”下的“语言级别”,平台设置下的“SDK”。
  3. 检查自己的文件编码格式与项目的文件编码格式是否一致。该项目所用的是UTF-8,那么就检查自己项目的文件编码是否也为UTF-8。
  4. 以上若有修改,需要重新构建项目,再启动项目看是否报错
    springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)_第8张图片

启动报错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

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

你可能感兴趣的:(spring,boot,数据库,后端,nginx,前端,springboot,java)