进学阁

业精于勤荒于嬉,行成于思毁于随

0%

ACL的概念

在一些情况下我们需要引入第三方的接口来进行操作,但是当我们引用第三方接口的时候也会有一些隐患,第三方=不可空,没准哪一天对方的接口参数突然就变掉了,如果我们直接在多个地方引用了第三方的接口,我们就需要在不同的地方处理接口方法,这时我们就需要引入防腐层的概念

什么是防腐层

在许多情况下,我们的系统需要依赖其他系统,但被依赖的系统可能具有不合理的数据结构、API、协议或技术实现。如果我们强烈依赖外部系统,就会导致我们的系统受到“腐蚀”。在这种情况下,通过引入防腐层,可以有效地隔离外部依赖和内部逻辑,无论外部如何变化,内部代码尽可能保持不变。

阅读全文 »

在springboot中@RestController的返回会使用Jackson来将响应序列化为json格式,所以构建统一的响应中的日期格式可以定义统一的序列化参数来实现,springboot自带的时间格式定义怎么处理的

阅读全文 »

什么是RBAC模型

权限是需要给对应的用户的,当用户太多的时候如果一个一个用户的设定权限就会显得很复杂,这时候我们可以引入角色,每个角色可以拥有多个权限,每个用户可以分配多个角色,这样用户就拥有了多个角色的多个权限

阅读全文 »

统一返回格式

为什么需要统一返回格式

接口的返回值类型众多,有的直接返回数据传输对象(DTO),甚至直接返回数据对象(DO),还有的返回Result对象。这样对外交互时对方处理起来特别的复杂,所以需要统一的返回格式。

阅读全文 »

Redis中常用的功能可以分为两款,第一是缓存用于提升读性能,可以根据不同的数据类型来实现月签到统计,排行榜,消息订阅等功能。第二是用于实现分布式锁,一个成熟的辅助类可以对这两项功能进行封装,并列出常用的方法

阅读全文 »

前面已经实现了统一返回以及异常处理,也完成了通用的数据模块,我们已经可以借此来实现服务,但是在微服务中肯定不会只有一个服务,当我们有多个服务的时候,会出现多个痛点:

  1. 当服务多的时候分布在不同的服务器上部署的时候,前端寻址将是困难重重,所以需要一个统一的入口,来帮助前端来访问这些服务
  2. 多个服务分部在不同的主机上,当我们因为某种原因需要修改多个服务的配置文件时,工作量巨大。

而Nacos+SpringCloudGateway可以帮我们解决这个问题

阅读全文 »

当构建一个通用的数据访问模块的时候,一般需要处理分页,乐观锁、以及插入或者修改时一些公共字段默认值填充,以及慢查询处理定制化(虽然mysql自带的有这方面功能但是通知的灵活性不如自定义更实用)

阅读全文 »

在之前的文章《InnoDB的存储结构》介绍的InnoDB的存储结构的组成中,我们知道Change Buffer也是用InnoDB内存结构的组成部分。

Change Buffer主要是为了在写入是减少磁盘IO而存在的,

阅读全文 »