POJO :又分为了 Entity DTO VO
1、GIT
在idea创建git 再点击对勾, 再点击绿色指向的, 传到gitee
2、进行MD5加密 DigestUtils.md5DigestAsHex getBytes()是将password输出为编码格式iso-8859-1
password = DigestUtils.md5DigestAsHex(password.getBytes());
3、swagger 主要帮助后端做接口测试
Knife4j对swagger进行增强封装
{1}、
{2}、 这两个都是写在配置内里面的
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
@Bean
public Docket docket() {
log.info("准备生成接口文档");
ApiInfo apiInfo = new ApiInfoBuilder()
.title("苍穹外卖项目接口文档")
.version("2.0")
.description("苍穹外卖项目接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
//3、
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始生成静态资源映射");
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
{4}swagger 常用注解 用于解释说明用处的和swagger上面的显示 让swagger接口文档有更好的可读性
例:
二、CRUD
1、我们先把项目接口以json格式传到apifox里面 方便看文档写CRUD
以YApi的方式导入
登录后可以看到的
2、新增员工
{1} DTO为前端页面传过来的数据 而entity实体类里面的数据是完整的 DTO可能不完整(因为前端导入的数据不完整)
最后传到service层
{2} 首先传到service层 再到serviceImpl现实
这里由于EmployeeDTO是个不完整的数据, 现在Employee传入mapper层
所以现在需要把EmployeeDTO数据复制到Employee里面,以及把Employee里的属性值补齐
(1)MD5加密 DigestUtils.md5DigestAsHex
(2)LocalDateTime.now() 当前时间
(3)StatusConstant.ENABLE PasswordConstant.DEFAULT_PASSWORD 都为写好了的类,直接调用
(4)最后传给mapper
{3} mapper层
因为sql内容简单,这里直接使用注解完成
{4} 功能测试 这里我们使用到接口进行测试
(1)首先需要设置全局参数,因为jwt令牌会检验 如果不进行jwt检验 则会报401错误
参数名称:token yml文件配置的
参数值: 可以通过员工登录来获取token的值,来用于crud的jwt检验
参数类型: hearder
{5}完善代码 : username设置的是唯一的,当出现重复会报500
现将写入异常管理
MessageConstant.ACCOUNT_EXISTS_FOUND 为参数不存在
MessageConstant.UNKNOWN_ERROR为参数未知错误
String[] split1 = message.split(" ") 将空格做为分离 保存在数组中
{6} 完善代码2 将添加的 createUser updateUser动态的注入
这里就需要得到用户的id
这里我们就用到了 ThreadLocal
在jwt这里可以得到id
ThreadLocal的三大类 set get remove
JWT这里获取
最后动态注入
3、分页查询
{1} 首先查看api文档
请求参数:name page pageSize 对应我们的EmployeeLoginDTO 类
响应: data: 为 PageResult 类里面的属性值
{2} controller 现在我们已经知道了 请求参数和响应的数据内容
通过前端请求的EmployeeLoginDTO 来响应PageResult 调用service层
{3} service
1、这里通过插件 pagehelper进行分页查询
2、 employeeMapper.pagequery(employeePageQueryDTO)通过调用mapper执行sql语句来获取查询的数据
3、这里利用了插件 pagehelper 所有需要使用page来放回
3、 这里的page获取的查询的数据,通过page来得到PageResult里面属性的值
{4}mapper
1、这里通过执行sql语句来获取数据 ,放在page集合里面
2、concat是包含的意思
{5} 测试发现这里的时间格式不一致
1、直接在实体内加上@JsonFormat
2、统一放在配置类中
标签:mapper,这里,接口,文档,外卖,swagger,苍穹,page From: https://www.cnblogs.com/1468697304qq/p/17623780.html