微服务事物回顾:
AP跟CP两种架构模式,BASE理论更加贴近实际。
- 核心服务可用
- 软状态
- 最终一致性
AT模式只会出现脏读,通过select for解决。脏写不会出现,需要拿到本地事物锁以及全局事物锁。
学习目标
- 能够描述黑马头条项目有哪些业务
- 能够了解黑马头条项目使用到什么技术
- 能够掌握初始化工程的搭建
- 能够掌握接口开发的流程
- 能够完成频道管理的功能开发
- 能够掌握使用接口swagger、postman、knife4j
- 能够搭建nacos注册中心
- 能够搭建admin网关
- 能够初始化前端工程
一、频道管理模块
1.1、根据名称查询频道列表信息
配置mybatis-plus分页拦截bean
校验参数(参数是否为空,是否合法)
条件查询
1.2、自动化生成接口文档
- swagger2依赖
- swagger-ui依赖
- 在需要修饰的类上边使用swagger类或方法上边使用swagger注解,配置相关信息。
- swagger-ui.html,项目的地址
1.3、knife4j
(1)简介
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!
导入knife4j场景依赖
这两个依赖不在同包环境下,不能够扫描到。可以使用import导入这个配置。
使用META-INF/spring.factories配置文件当中实现自动注解功能
1.4、频道新增
- 频道名称不能为空,不能大于10个字符,不能够重复。
- 保存频道
1.5、频道修改
- 校验id是否是空,id对应的频道是否存在
- 新的频道是否重复。
1.6、频道删除
- 参数校验,参数是否合法
- 查询该频道的状态,如果是启用的状态,不能够进行删除
- 返回结果
定义全局异常通用处理类的注解
@RestControllerAdvice // Springmvc 异常处理拦截注解
对于在maven中引用的其他外部包加入容器的过程,需要用到spring.factories。
项目过程当中遇到的问题:
1、测试过程中,mock数据没有保持是启用或者禁用的状态,导致测试过程中出现问题