springboot苍穹外卖实战:一、环境搭建(nginx启动失败解决方案+Entity、DTO、VO、POJO区别说明+nio.charset.Input length = 2报错解决)
环境搭建
前端环境搭建
在资料的day01中有个“前端运行环境”的文件夹,将其中的"nginx-1.20.2"文件夹解压到非中文目录下,然后直接点击文件夹中的nginx.exe(闪退不要紧)。
然后在浏览器中直接输入localhost,如果出现以下页面,即说明前端启动成功。
启动失败解决方案
如果没有,可能原因是80端口被占用。
- 可以选择修改“nginx-1.20.2”下的“conf”的“nginx.conf"的80端口,改为其他端口
server{ listen 80;
- 也可以选择将占用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本地仓库
当Idea中出现:
说明本地仓库创建成功。
然后开始提交:
中间出现,点击commit即可。(这只是因为项目初始化代码还不完善,有错误,被git检查到了而已)
创建git远程仓库并推送
访问https://gitee.com/,新建仓库,复制url作为备用。
然后打开git的远程仓库管理,可以从以下两种地方打开:
- 第一种方法
- 第二种方法
然后将url粘贴进如下页面。
然后点击推送,发现gitee的仓库里新增内容,即推送成功。
表环境搭建
在资料的“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 订单明细表 启动后端代码
- 修改项目子模块sky-server下的application-dev.yml的数据库连接信息,将用户名和密码换为自己的数据库用户名和密码。
- 检查自己的jdk和项目所需的jdk是否版本一致,该项目所用的是java8,语言级别也为8。那么就要打开项目结构设置,确认自己的项目设置下的“项目”的SDK和语言级别,“模块”下的“语言级别”,平台设置下的“SDK”。
- 检查自己的文件编码格式与项目的文件编码格式是否一致。该项目所用的是UTF-8,那么就检查自己项目的文件编码是否也为UTF-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
说明文件编码不对,注意修改文件编码后要重新构建项目。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。