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

03-01 1140阅读

环境搭建

前端环境搭建

在资料的day01中有个“前端运行环境”的文件夹,将其中的"nginx-1.20.2"文件夹解压到非中文目录下,然后直接点击文件夹中的nginx.exe(闪退不要紧)。

然后在浏览器中直接输入localhost,如果出现以下页面,即说明前端启动成功。

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

启动失败解决方案

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

  1. 可以选择修改“nginx-1.20.2”下的“conf”的“nginx.conf"的80端口,改为其他端口
    server{
    	listen		80;
    
  2. 也可以选择将占用80端口的应用程序关闭掉。cmd打开命令行后输入以下命令
    netstat -ano | findstr 80 
    
    发现出现如下页面:

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

    最后的14469等便是占用端口的进程id。再在cmd窗口输入

    tasklist | findstr 14468
    
    发现出现如下页面:

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

    说明是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本地仓库

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

当Idea中出现:

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

说明本地仓库创建成功。

然后开始提交:

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

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

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

创建git远程仓库并推送

访问https://gitee.com/,新建仓库,复制url作为备用。

然后打开git的远程仓库管理,可以从以下两种地方打开:

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

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

    然后将url粘贴进如下页面。

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

    然后点击推送,发现gitee的仓库里新增内容,即推送成功。

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

    表环境搭建

    在资料的“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. 以上若有修改,需要重新构建项目,再启动项目看是否报错

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

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

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

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]