最适合新手的SpringBoot+SSM项目《苍穹外卖》实战—(二)开发环境搭建

黑马程序员最新Java项目实战《苍穹外卖》,最适合新手的SpringBoot+SSM的企业级Java项目实战。

前端环境搭建

前端工程基于 nginx 运行,因为《苍穹外卖》项目侧重于后端开发,所以黑马程序员给我们直接提供了前端的代码部分,我们只需要在本地搭建好前端环境,并运行起来,专注于后端开发即可。

  1. 在资源贴中下载前端工程资源并将其解压:

    image-20230706145045771

  2. 进入\nginx-1.20.2\html\sky 路径,可以看到打包好的项目目录结构如下:

    image-20230706145210945

  3. 那么我们需要将 nginx-1.20.2 目录移动到没有中文的目录下才能正常启动!!!

    image-20230706145641006

  4. 双击 nginx-1.20.2/nginx.exe 文件,窗口会一闪而过,之后访问浏览器地址【http://localhost/】:

    image-20230706190918716

  5. 此时,前端环境已经搭建完毕。

注:当前 Nginx 的配置文件中已经配置了反向代理,通过此配置可以将前端请求转发到后端服务。

后端环境搭建

项目结构

后端工程基于 maven 进行项目构建,并且进行分模块开发。项目的目录结构如下:

使用 IDEA 导入初始工程,项目的整体结构如下:

image-20230707173824880

对工程的每个模块作用说明:

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

对项目整体结构了解后,接下来我们详细分析上述的每个子模块:

sky-common 模块

sky-common 模块中存放的是一些公共类,可以供其他模块使用:

image-20230707174222358

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

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

sky-pojo 模块

sky-pojo 模块中存放的是一些 entity、DTO、VO 类:

image-20230707174331434

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

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

sky-server 模块

sky-server 模块中存放的是 配置文件、配置类、拦截器、controller、service、mapper、启动类等:

image-20230707174415312

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

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

Git 版本控制

创建本地仓库

  1. 点击【VCS】、【创建 Git 仓库】:

    image-20230707174623594

  2. 选择当前项目,点击确定:

    image-20230707174957704

  3. 出现 git 提交按钮,本地仓库创建成功:

    image-20230707175044068

创建远程仓库

  1. 访问 https://gitee.com/,新建仓库,完善仓库信息:

    image-20230707175435482

  2. 点击创建:

    image-20230707175616876

本地文件推送远程仓库

  1. 添加远程仓库地址:

    test

  2. 点击 IDEA 菜单栏中的提交按钮:

    image-20230707180606108

  3. 选中【未进行版本管理的文件】,下方输入本次提交的注释,点击【提交并推送】【仍然提交并推送】:

    image-20230707181542000

  4. 点击推送:

    image-20230707181724513

  5. 推送完成,刷新远程仓库即可:

    image-20230707181817005

数据库环境搭建

  1. 下载数据库文件,【sky.sql】:

    image-20230707182801960

  2. 通过该 sql 文件直接可创建数据库,所以不需要提前创建数据库,直接使用 SQLYog 导入该文件执行即可:

    image-20230707182913115

  3. 执行完成后,共创建出11张表:

    image-20230707183028321

前后端联调

后端的初始工程中已经实现了登录功能,直接进行前后端联调测试即可。实现思路:

  1. 启动前端环境:

    image-20230706190918716

  2. 启动后端环境:

    image-20230707193351282

  3. 前端页面输入账号密码【账号:admin;密码:123456】进行登录:

    image-20230707193432469

完善登录功能

  1. 打开employee 表,修改数据库中明文密码,改为 123456 经过 MD5 加密后的密文【e10adc3949ba59abbe56e057f20f883e】:

    image-20230707201552385

  2. 修改 EmployeeServiceImpl 实现类中的用户登录逻辑的代码,调用 DigestUtilsmd5DigestAsHex() 方法将前端提交的密码进行 MD5 加密,再跟从数据库中查询的密码进行比对:

    public Employee login(EmployeeLoginDTO employeeLoginDTO) {
          
          
      ......
    
      //密码比对
      // 对前端传过来的明文密码进行MD5加密处理
      password = DigestUtils.md5DigestAsHex(password.getBytes());
      if (!password.equals(employee.getPassword())) {
          
          
        //密码错误
        throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);
      }
    
      ......
    }
    

猜你喜欢

转载自blog.csdn.net/qq_20185737/article/details/131604011