苍穹外卖day1记录

前言

        博主本人第一个学习的项目是黑马程序员的javaweb开发里的tlias智能学习辅助系统项目,觉得学习的还是太浅,学完之后对各个技术栈只是有了一个初步印象,为了巩固基础,我决定学习黑马推荐的进阶项目——苍穹外卖,但是在学习过程中发现,官方对于后端提供了初始代码,而我对其结构并不明了,所以我决定复现一下官方提供的后端源码,写这篇博客也就是想记录一下整个学习过程,以便于后续复习。

        由于本人刚学习java不太久,有些语法、专有名词之类的可能描述的不太对,希望各位看客能多多包容,如果能给予指正,本人不胜感激。

正文

        打开官方提供的sky-take-out文件夹,该文件夹下有pom.xml文件,打开后有如下内容:

        依照这部分信息,去创建一个New Project,填写对应的groupId和artifactId,就酱:

        创建好后,将官方的pom文件内容依照需求复制过去(差不多就是把<dependencyManagement>、<packaging>、<properties>都复制过去,一边对照一边复制,至于其中的<modules>则不必复制,之后只要在父项目下创建子项目,maven会自动帮我们搞定的)那么这样父项目就创建好了。

        由于之前学了javaweb开发,我知道pojo文件夹一般用来存储类,不涉及到功能性代码,所以我决定从官方父项目下的sky-pojo文件夹入手,结果点开后人都傻了——文件太多辣!

        我根本不知道各个文件夹的命名是什么意思,所以我决定去了解一下。首先搜的就是DTO,然后搜到了这么一篇文章:一篇文章讲清楚VO,BO,PO,DO,DTO的区别 - 知乎 (zhihu.com)这位知乎作者说的很详细,感兴趣的各位可以去看看!我大致了解到,DTO(Data Transfer Object)数据传输对象——用于逻辑处理与页面展示,VO(Value Object)值对象——用于页面展示,entity 等同于 PO(Persistant Object)持久对象——通常一个PO的数据结构对应着库中表的结构,数量是相对固定的,一定不会超过数据库表的数量。DTO与VO我不知道官方项目在哪里用到了它们,所以我先略过,看看entity文件夹下的内容吧!

        数了一下是11个,和视频P8提到的数据库表的数目一样,各个文件名也和官方提供的数据库设计文档中的字段名一样。

        那么就先从这里入手啦~先在自己创建的父项目sky-take-out下建立子项目sky-pojo,整个过程和创建父项目一致,这里不做演示了。然后在自己的文件夹下依照官方的sky-pojo文件夹结构进行创建,得到:

        接着就是创建前边提到的PO啦,也是仿照官方提供的文件进行copy,但是要在理解的情况下copy!起始内容挺简单的,和javaweb开发中创建的pojo文件没啥区别,不过还是有一点不一样:

package、import不必多说,解释一下注解:
首先所有的注解都来源于lombok,是一个简化代码的包(?不确定是不是这么说)
@Data 自动构建get()、 set()、 toString()等方法;
@NoArgsConstructor 自动构建无参构造方法
@AllArArgsConstructor 自动构建传参构造方法
@Builder 这是我先前没见过的,详见Java中lombok @Builder注解使用详解-腾讯云开发者社区-腾讯云 (tencent.com)
再来看看继承Serializable接口又是用意何为,我看了接口源码发现,这个接口下并没有任何方法,加上我百度了一下,我大概知道这里的 implements Serializable 的作用,应该是作为一种声明。详见Serializable是什么,为什么要实现Serializable接口?-CSDN博客
还有类里面的这个serialVersionUID属性,在上面的链接中有提及,但是并没有深入解释,可以看看这篇serialVersionUID 是干什么的? - 知乎 (zhihu.com)

        然后该文件夹下的其他文件也大差不差,都是这类格式,那么不必多说,CV就行~由于是晚上开始写的项目,那么第一天就只能学到这里了,明天继续!

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值