项目——讲师管理模块后端接口

本文详细介绍了讲师管理模块的后端接口设计,包括Swagger接口文档、统一返回数据格式、讲师分页功能、多条件组合查询、讲师添加与修改、逻辑删除、全局异常处理和日志记录。使用MyBatis Plus进行数据库操作,实现逻辑删除插件,并通过Swagger生成在线接口文档。同时,文章还讲解了如何统一返回数据格式和异常处理,以及日志的配置和使用。
摘要由CSDN通过智能技术生成

项目

在这里插入图片描述
父工程为pom类型,管理依赖的版本和存放公共的依赖。(只要一个模块下面有子模块,则当前模块为pom类型)
子模块中引入具体的依赖,在子模块的子模块中编写具体代码模块。
在这里插入图片描述
配置文件
在这里插入图片描述

在这里插入图片描述
mybatis_plus提供了代码生成器模板
mybatis_plus提供的代码生成器需要引入相关依赖,即velocity依赖

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
//controller:通过service接口来控制业务流程,同时也接收前端的请求,controller中引入service借口
//controller:控制器,将注解的部分交给spring管理,responseBody作用是将返回的数据结构转换为json格式
@RestController//当前注解=@controller+@responseBody:是这两个注解的和,这里采用前后端分离方式,
// 不用模板渲染,直接使用restcontroller将数据以json格式传给前端
(1)controller中注入service接口
(2)service中注入mapper接口
(3)mapper接口,操作数据库,
(4)entity:实体类:和数据库的属性保持一直

注意:在mybatis_plus中对mapper和service都做了封装
例如serviceImpl也是mybatis_plus中的方法

在service调用mapper过程也做了封装,在serviceImpl中注入了baseMapepr,通过@Autowired注解
mybatis_plus对mapper和service都做了封装,同时在serviceImpl类中通过注解注入了mapper
这里serviceImpl类中通过@Autowired注解注入了BasedMapper,
因此在controller中注入service就行,而service注入mapper已经做了

在这里插入图片描述
流程:
代码生成器:生成代码和相应的包等——在controller中注入service,因此service、mapper在mybatis_plus中都封装了,所以直接调用——通过service调用方法,查看结果——编写配置文件:数据库,开发环境,端口号,mybatis日志——创建启动类——由于mapper是个接口,没有实现类,需要通过注解扫描引入mapper——创建配置类,在配置类中引入注解,同时加上mapper的包名,即他的位置——项目启动起来,使用端口号8001;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
@recontroller注解将json格式的数据传送给前端,由于json格式的数据中的时间时带有时区的世界标准时间,格林尼治时间,而我们是东八区,相差八个小时,因此在配置文件中做处理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里是基于注解式的配置,相当于基于xml的配置
在这里插入图片描述
逻辑删除讲师
1、在配置类中添加逻辑删除插件
在这里插入图片描述

2、在相应的实体类的属性上添加逻辑删除注解
在这里插入图片描述
3、在controller中编写逻辑删除讲师的方法
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/5d058cb92e8943fb8f287d15124a7596.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dkZzA4MDk=,size_16,color_FFFFFF,t_70)

swagger

REST风格:Representational State Transfe表现层状态转移
在这里插入图片描述
在这里插入图片描述

swagger生成一个在线接口文档,方便测试
在这里插入图片描述
1、swagger具体使用:放在父工程中,以供所有模块使用
在这里插入图片描述
2、在service_base中创建配置类
在这里插入图片描述
3、在service中的pom文件中添加依赖
由于swagger配置类和教师管理模块service_edu不在一个模块下,怎么实现调用?
在service模块中引入service_base依赖,即在service_edu的父模块中的pom文件中添加service_base依赖
在这里插入图片描述
4、在service_edu启动类中添加注解,进行组件扫描
如果不添加扫描规则,默认只扫描当前模块的配置类
当添加之后,在指定包中进行扫描
在这里插入图片描述
5、访问swagger
通过指定网址进行访问swagger:http://localhost:8001//swagger-ui.html
在这里插入图片描述

在这里插入图片描述

为了方便看swagger,加一些注解
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

统一返回数据格式:

使得接口返回数据格式一样,将所有接口返回的数据格式统一
json数据格式有两种:
数组 对象,一般是两者或者使用
对象+数组
同时这个数据是所有模块都要使用的,因此放在公共模块中
在这里插入图片描述
在这里插入图片描述
定义接口:存放状态码
在这里插入图片描述
定义统一结果返回类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在创建完统一结果返回类之后,在之后的结果统一使用这种返回数据格式:
第一个步:在service中pom中引入common_utils相关依赖

在这里插入图片描述
第二步:将接口中的方法的返回结果都是R类型,即统一数据结果返回类
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

讲师分页功能

第一步:在配置类中加入分页插件
在这里插入图片描述
第二步:编写讲师分页查询接口中的方法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

多条件组合查询带分页

在这里插入图片描述
第一步:将前端传入的条件值传递到接口中:
具体:吧条件值封装到对象里面,吧对象传递到接口里面
即创一个vo类,专门封装条件值
在实体包中创建一个vo包,创建一个类封装这个条件值
在这里插入图片描述

第二步:构造条件:

1、这里需要注意加了@RequsetBody(required= false)注解,表示使用json格式传递数据,吧json格式的数据封装到对应的对象中,false表示这个对象可以没有、
2、当使用requestBody是,此时的提交方式不在get提交,而是post提交
在这里插入图片描述

在这里插入图片描述
测试的时候,输入的数据为json格式
在这里插入图片描述

讲师添加

第一步:自动填充
在实体类中,使用@TableField(fiill = FieldFill.INSERT)注解对自动填充的属性进行注解,
在这里插入图片描述

第二步:因位自动填充可以看成公共的,其他方法也用,所以在common模块下的service—base模块中创建一个自动填充类,实现MetaObjectHandler接口,在实现类中重写插入填充和修改填充两个方法
在这里插入图片描述
3、在controller接口中编写讲师添加接口方法
在这里插入图片描述
在这里插入图片描述

讲师修改

第一步:查询修改讲师的ID,这里通过路径传递,id通过路径获取
@PathVariable 获取路径中id值
在这里插入图片描述
第二步:修改讲师
这里用对象传,使用@RequestBody 使用json格式传递数据,将数据封装给后面的对象,此时的提交方式是post
注意这部分在测试的时候,id要确定,创建时间和修改时间去到,因为是自动填充
在这里插入图片描述
在这里插入图片描述

统一异常处理

一全局异常处理
因为所有模块都用到,所以放到公共模块中
这里是针对所有异常进行的处理
在这里插入图片描述
在这里插入图片描述
二、特殊异常处理
//对于既有全局异常处理又有特定异常处理,首先执行特定异常处理,如果特定异常没有,在执行全局异常处理
在这里插入图片描述

三、自定义异常处理

第一步:创建一个自定义异常类,让其继承RUNtimeException异常,由于所有模块都会用到,所以放到common模块中的service_base模块中
第二步:在自定义异常类中写相关属性,例如状态码,提示信息。
这里用到三个注解
@Data:通过lombok插件自动生成set 、get方法
@AllArgsConstrutor生成有参数构造器
@NoArgsConstrutor 生成无参数构造器
在这里插入图片描述
第三步:在同一异常处理类中添加自定义异常处理方法
在这里插入图片描述
第四步://由于自定义的异常不是系统自带的,系统不会自动抛出自定义的异常,需要我们手动抛出自定义的异常,在controller中的对应可能出行异常的地方抛出异常,捕获异常,这里需要手动抛出异常
在这里插入图片描述

在这里插入图片描述

日志

一、日志的级别
日志的级别有:OFF、FATAL、ERROR 、 WARN、 DEBUG 、 INFO、ALL,
日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出
基本的四个:ERROR、 WARN 、DEBUG 、INFO

日志工具logback
这里不仅吧日志输出到控制台,也要输出到文件,则需要使用logback日志工具

步骤:
第一步:将配置文件application.properties中的所有日志文件去掉,例如日志级别,包含mybatis_plus日志
在这里插入图片描述

第二步:在resource下创建logback-spring.xml文件
这个文件是固定的模板,看懂就行
在这里插入图片描述

如果程序出现异常,将异常添加到文件中去
第一步:在全局异常处理类中加注解@Slf4j
在这里插入图片描述
第二步:在具体的异常中将异常信息放入日志中

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值