从零开始搭建仿抖音APP-构建后端项目

目录

聚合工程

构建父工程

构建子工程

构建接口工程并且暴露api接口

优雅Restful相应封装

Lombok与多环境profile

数据层

配置数据库逆向生成工具

配置mybatis整合SpingBoot

使用Knife4j实现接口文档


聚合工程

构建父工程

项目采用meavn创建一个聚合工程,采用meavn的分层结构。构建一个父工程,

从零开始搭建仿抖音APP-构建后端项目_第1张图片

pom:代表总工程,用于管理的从零开始搭建仿抖音APP-构建后端项目_第2张图片

 

配置完按常理,在Meavn中应该会有坐标,但这里没有。从零开始搭建仿抖音APP-构建后端项目_第3张图片

 

 我们这里用的dependencyManagement,是一种父子的关系,面向对象的一种思想。

从零开始搭建仿抖音APP-构建后端项目_第4张图片

 使用dependencyManagement的目的是为了保证父工程的干净, 也就是说父工程他只负责管理依赖,以及依赖的版本,而不会导入额外的jar依赖。 如此一来父工程的职责就很单一了,而且也符合了面向对象开发的父子继承关系, 依赖的导入只有在各自的子工程中才会进行导入。

如果不想加,可以把所有的坐标,在我们的(顶级工程)父工程导入,也没有问题。

meavn的编译工具所采用的版本是jdk的1.8,作为一个插件使用。

从零开始搭建仿抖音APP-构建后端项目_第5张图片

 

构建子工程

创建子模块,

从零开始搭建仿抖音APP-构建后端项目_第6张图片

 创建完成之后在父工程里会出现:

从零开始搭建仿抖音APP-构建后端项目_第7张图片

 book-common 通用工程,包含一些工具类,枚举类,自定义异常,封装的公共方法。

book-model 模型工程,所有的子工程以及所有(微)服务工程所涉及到的实体类都可以再此处管理 比如:POJO, Bean, Entity, BO, VO, DTO, MO, EO...

book-mapper 数据层,操作数据库(DAO)

book-service 业务层

book-api 接口层,暴露接口,提供给前端调用

在父工程中检查: 

从零开始搭建仿抖音APP-构建后端项目_第8张图片

在common中引入依赖:

注:这不能version,因为会覆盖父工程的版本。

 

依赖来源于Springboot中,它管理了很多的依赖: 

最后建议在父工程中,install,它会把我们所有的jar包进行安装和校验。

从零开始搭建仿抖音APP-构建后端项目_第9张图片

 

构建接口工程并且暴露api接口

在我们构建好web工程后,要创建一个启动类来启动我们的工程:

从零开始搭建仿抖音APP-构建后端项目_第10张图片

 此时,它会报错,因为之前在common中添加了依赖,而我们的项目是一层一层调用的。api依赖于service,service依赖于mapper,mapper依赖于model,model依赖于common,这样才会使得我们api里会有相应的依赖。

在model中:

从零开始搭建仿抖音APP-构建后端项目_第11张图片

 在mapper中:

从零开始搭建仿抖音APP-构建后端项目_第12张图片

 

在service中:

从零开始搭建仿抖音APP-构建后端项目_第13张图片

 

从零开始搭建仿抖音APP-构建后端项目_第14张图片

 在父工程进行一个install。

在启动类中:

从零开始搭建仿抖音APP-构建后端项目_第15张图片

 接着要构建一个controll的包,再创建一个类,在里面写我们最简单的一个接口方法:

从零开始搭建仿抖音APP-构建后端项目_第16张图片

随后要创建一个配置文件,首先我们的服务端口号,要和我们之前的项目保持一致。

从零开始搭建仿抖音APP-构建后端项目_第17张图片

 从零开始搭建仿抖音APP-构建后端项目_第18张图片

 在里面进行一些配置:

从零开始搭建仿抖音APP-构建后端项目_第19张图片

 启动项目:

从零开始搭建仿抖音APP-构建后端项目_第20张图片

 访问hello:

从零开始搭建仿抖音APP-构建后端项目_第21张图片

 

 我们配置的一个banner,可以是图片等...控制台的一个效果,可以在云服务台和日志里面看见。

从零开始搭建仿抖音APP-构建后端项目_第22张图片

 现在表示已经可以对外体现我们的web能力了。

优雅Restful相应封装

我们和前端做对接时,会有一个统一的封装,也就是我们的接口请求的是什么样的状态,是否成功,有没有异常。

在common中:

从零开始搭建仿抖音APP-构建后端项目_第23张图片

 现在使用gracejsonresult,即优雅的封装,不包含枚举。我们通过优雅的封装可以在

responsestatusEnum中做一个定义。

由于枚举在前端后端都是统一的,前端在捕获status时,会根据状态,把对应的内容展示出来,

或者前端可以不根据状态码直接获取。

如何去使用? 这里我们是请求成功的:

从零开始搭建仿抖音APP-构建后端项目_第24张图片

 接着重启:

从零开始搭建仿抖音APP-构建后端项目_第25张图片

 现在我们获得的是json的一个字符串,前端根据状态码进行判断。

如果这里设计请求失败,在这里传入一个枚举:

从零开始搭建仿抖音APP-构建后端项目_第26张图片

 

 从零开始搭建仿抖音APP-构建后端项目_第27张图片

 这就是我们优雅的一个封装。

Lombok与多环境profile

在common中引入一个依赖:

从零开始搭建仿抖音APP-构建后端项目_第28张图片

 早期它是作为一个插件,需要独立安装。现在被springboot集成了。现在的开发根据能够自动集成。

如何使用呢?创建一个类,

按照以往需要创建很多get,set函数。

从零开始搭建仿抖音APP-构建后端项目_第29张图片

生成的太多没有必要,我们把方法去掉,只保留属性,

从零开始搭建仿抖音APP-构建后端项目_第30张图片

 @data帮我们生成了方法,就可以调用了,

从零开始搭建仿抖音APP-构建后端项目_第31张图片

 

从零开始搭建仿抖音APP-构建后端项目_第32张图片

 我们可以使用日志进行打印,只需要正当前的类里加一个注释:

从零开始搭建仿抖音APP-构建后端项目_第33张图片

 从零开始搭建仿抖音APP-构建后端项目_第34张图片

重启,做个测试:

从零开始搭建仿抖音APP-构建后端项目_第35张图片

 回到控制台:

从零开始搭建仿抖音APP-构建后端项目_第36张图片

 三个级别的日志级别,可以在配置文件中设置:

从零开始搭建仿抖音APP-构建后端项目_第37张图片

 我们有开发环境,生成环境,测试环境等,不同环境对于我们的代码是不同的,配置需要改变:

从配置来讲,只是端口号不同,在我们本身的配置里,注释端口号

在我们的dev配置文件中,删去相同的。

数据层

配置数据库逆向生成工具

配置mybatis整合SpingBoot

使用Knife4j实现接口文档

你可能感兴趣的:(仿抖音APP项目,mybatis,java,restful)