当前位置: 首页 > news >正文

【苍穹外卖日记】Day1-环境搭建与apifox文档建立

目录

导入项目

编译项目

git

连接数据库

运行前端

端口被占用

问题描述:

数据库

Apifox文档导入

接口文档

POJO类和result重点回顾

1. 什么是 POJO 类?

苍穹外卖中的 POJO 分类

2. Result 统一返回结果

分页查询如何返回 Result


从今天开始记录苍穹外卖学习过程中的收获和遇到的问题。大致框架就是每天做的什么

导入项目

文档中提供了初始项目,

其中父工程是sky-take-out,三个子模块在pom.xml配置了parent属性。

编译项目

起初我编译一直不通过,看弹幕说是lombok版本的问题,在配置文件上修改了版本还是报错

把日志抛给gpt说是lombok的原因。后来去把jdk版本降成了jdk17,但是还是不行。最后又看了一些博客,发现是maven项目设置里jre版本的问题

git

在这里一直编译不通过有点恼火,改也没法改就用git回退到初始架构了。以后我们也会讲一讲git版本管理利器。

连接数据库

在这里需要把密码修改成自己的,记得把服务打开

运行前端

前端运行:

  • nginx.exe需要放在没有中文 和空格的目录下 不然无法运行
  • 配置好后直接双击就可以运行。在浏览器输入localhost:80 就可以访问到界面

端口被占用

问题描述:

开始时我访问不到界面 一直是iis服务界面 也就是这个端口被占用了,后来我去找了一些解除端口占用的方法。

第一种:在管理员命令行运行iisreset/stop
第二种:服务里关闭World Wide Web Publishing Service

之后再去访问界面就可以访问到前端渲染出来的界面了。

数据库

在文档中打开数据库构建源码,然后再集成环境或者idea插件里运行都ok。之后就能正常查询到表结构。

在这里其实我少做了一步,就是熟悉表之间的关系和表字段,导致我后面敲接口是有点懵。因为表结构没有物理外键,只有逻辑外键,需要自己在逻辑处理时思考表与表之间的关系。所以对表生疏的话还是有一点麻烦。

Apifox文档导入

1.首先我在apifox官网引入接口文档,选择yapi那个就可以导入

2.然后我在idea里下载了一个apifox的插件 它能直接识别出我写的新接口,相当智能

3.后续开发中我也用了一些接口调试,体验也是不错

可惜的是前后端联调太爽了,我都懒得用apifox了

接口文档

熟悉接口文档也是重要的一步,这有利于在开发时对表述层参数接受和返回有清晰的认识。

POJO类和result重点回顾

苍穹外卖的pojo类划分相当清晰

1. 什么是 POJO 类?

  • Plain Old Java Object:不依赖框架的普通 Java 对象。

  • 特点:

    1. 只有属性和 getter/setter(必要时加上 toStringequalshashCode)。

    2. 不继承框架类,保证解耦。

    3. 主要作用:作为 实体类VO(视图对象)DTO(数据传输对象)查询条件对象

苍穹外卖中的 POJO 分类

  1. 实体类(Entity):与数据库表一一对应。

    • 例:UserDishOrderEmployee 等。

    • 通常放在 entity 包里。

    • @TableName@TableId(MyBatis-Plus)注解。

  2. DTO(Data Transfer Object):数据传输对象,用来接收前端传过来的参数。

    • 例:UserLoginDTODishDTOOrderSubmitDTO

    • 可以避免直接暴露 Entity,保证安全性。

  3. VO(View Object):视图对象,用来返回给前端的数据。即前端需要什么就返回什么。

    • 例:DishVOOrderVO

    • 往往是多表关联查询结果,或者拼接额外的字段。

2. Result 统一返回结果

为了让前后端交互的数据格式统一,项目里会有一个 Result<T> 泛型类。但这个类实际是在common模块下的,是一个公共的类。

package com.sky.result;import lombok.Data;import java.io.Serializable;/*** 后端统一返回结果* @param <T>*/
@Data
public class Result<T> implements Serializable {private Integer code; //编码:1成功,0和其它数字为失败private String msg; //错误信息private T data; //数据public static <T> Result<T> success() {Result<T> result = new Result<T>();result.code = 1;return result;}public static <T> Result<T> success(T object) {Result<T> result = new Result<T>();result.data = object;result.code = 1;return result;}public static <T> Result<T> error(String msg) {Result result = new Result();result.msg = msg;result.code = 0;return result;}}
  • Result<T> 中的 data 可以是任何类型:单个对象(User)、集合(List<Dish>)、分页对象(PageResult<OrderVO>)等。

  • 不需要为每种数据再写一个新的 ResultXXX 类。

分页查询如何返回 Result

分页查询通常会返回两类信息:

  • 总记录数

  • 当前页数据列表

所以通常会定义一个 分页结果对象(例如 PageResult),再用 Result<PageResult<T>> 包。

在这里就能充分体会到泛型的好处了,它是统一返回结果必不缺少的工具!

学下去,向前!

http://www.dtcms.com/a/442507.html

相关文章:

  • 宁波建站模板厂家wordpress文字logo
  • 【Qt】事件
  • 数字人民币钱包抉择:匿名自由与实名安全的法律风险评估
  • 做网站需要用到什么北京养老网站开发
  • 专门做电商的网站有哪些广告推广策略
  • Java EE初阶启程记06---synchronized关键字
  • QT(c++)开发自学笔记:1.串口
  • 最小外接矩形2显示四条边缘
  • 什么是网站建设与维护潘嘉严个人网站
  • 天津做网站哪家好如何申请域名后缀
  • MCP(trae)+ wireshark-提高干活效率
  • 机器视觉3D检测中,.ply(Polygon File Format) 3D点云格式
  • 如何网站优化排名做兼职比较正规的网站
  • 兰亭妙微高端网站设计案例:品牌官网如何做到美学与转化并重
  • 网站主机提供商:选择与您业务相匹配的托管服务
  • Linux学习笔记--insmod 命令
  • 做树状图的网站html全屏网站
  • 网站页面设计师如何编辑网站模板
  • 网站服务器网络企业网站设计方案
  • 数仓一些问题
  • 君正T32开发笔记之AOV实例介绍
  • 包含HPA配置与资源限制示例
  • 做影视网站用主机还是用服务器合肥网络优化公司有几家
  • 网站开发属于哪个部门贵阳网站建设电话
  • fiddler详解
  • 系统版本管理规范:从分支策略到发布流程
  • 【LLM-RL】GRPO->DAPO->GSPO训练区别
  • 建设中心小学网站上海16个区排名
  • Linux下查看和关闭进程的方法
  • 【ROS2学习笔记】动作