逗号的博客

这里有一句格言,但我还没想好

问题描述

在上一篇文章中我们通过继承 GenericResponseService 类并重写 build 方法和实现 OperationCustomizer 接口的方式实现了 SpringDoc 的统一应答类型处理,但是实现的方式有点不够好,侵入 SpringDoc 的流程比较多,是否有更好的实现方式呢?

阅读全文 »

问题描述

在日常开发中我们会定义类似下面的 Result 类来统一接口返回结果的结构

1
2
3
4
5
6
7
8
9
public class Result<T> implements Serializable {
private static final long serialVersionUID = 1L;

private Integer code;

private String message;

private T data;
}

此时 Controller 中的方法就会写成这个样子

1
2
3
4
5
@GetMapping("/detail1/{userId}")
public Result<User> detail1(@PathVariable(name = "userId") Long userId) {
User user = ....
return Result.<User>builder().data(user).build();
}

在每个方法上都写上类似 Result<User> 这样的代码还是比较繁琐的,我们期望写成 User 这样简单的形式

1
2
3
4
5
@GetMapping("/detail2/{userId}")
public User detail2(@PathVariable(name = "userId") Long userId) {
User user = ....
return user;
}

而由框架去处理返回结果的包装。此时就会使用到 Spring 的 ResponseBodyAdvice 接口

1
2
3
4
@RestControllerAdvice
public class ResultResponseBodyAdvice implements ResponseBodyAdvice<Object> {
// ...
}

同时我们也会使用 SpringDoc 对外提供可访问的文档。此时问题出现了,我们发现在 Swagger 的文档中方法 detail1 和方法 detail2 对应的 Schema 不一样

我们期望 detail2 展示的结果和 detail1 一样。

阅读全文 »

场景描述

根据上一行填充本行的空白栏位[1]。这是在参考资料中提出的一个问题,它给出了在 SQL Server 数据库中的解决方案,现在要在 PostgreSQL 中来模拟并解决它。

阅读全文 »

场景描述

假设有用户 u1、u2、u3、u4、u5、u6、u7,他们可以根据自己的喜好加入小组 g1、g2、g3、g4、g5,现在要找出加入了 g2 但是没有加入 g5 的用户。

阅读全文 »

集群规划

这里搭建的集群由一个控制平面节点和两个工作节点组成

服务器 IP 角色 备注
192.168.59.116 control plane master
192.168.59.117 worker node node1
192.168.59.118 worker node node2

选用的软件及其版本清单如下所示

软件名称 版本号
CentOS 7.9.2009
containerd 1.6.19
runc 1.1.4
CNI Plugins 1.2.0
Kubernetes 1.26.2
阅读全文 »
0%