解决 MockMvc 中文乱码

需求描述

在 Junit 使用 MockMvc 对 Controller 层进行单元测试时,发现控制台打印的响应结果中文出现乱码,导致断言异常(预期值与结果不符)。

非空或校验器

需求描述

通过自定义注解,拓展 JSR 303规范,以实现校验参数中多个字段不可同时为空的情况。
即指定字段列表中,至少一个为非空值。

解析 Java8 时间类

Spring Boot

使用 @DateTimeFormat 可以对非 Json (即未被 @RequestBody 修饰的)参数进行反序列化,该注解由 Spring Boot 提供,与序列化工具无关。
而需要处理 Json 参数时,则必须借助 Json 序列化框架来实现。

RestTemplate 使用

场景描述

restTemplate 是 spring 提供的基于 restful 设计的 http 请求客户端。

WebMvc 测试

场景描述

需要对 api 编写测试类,可以采用的方式:

WebFilter 路径匹配模式不生效

需求描述

在登录授权时,需要从 header 中获取 token 进行鉴权,通常使用过滤器处理指定的访问请求,但在使用 @WebFilter 注解时,发现其路径匹配模式不生效,即 url、urlPatterns 属性配置后,拦截了所有请求。

Bootstrap 多环境配置

需求描述

由于在 bootstrap.yml 文件中配置 CI/CD 的环境变量,而本地开发时并没有相关环境,所以需要手动切换其属性,在提交代码时,需要关注该配置文件是否会与云端冲突,极其浪费精力。
因此需要能够屏蔽本地与云端配置差异的手段。

同时处理 XML 和 JSON 接口

需求描述

出入参同时支持 XML 和 JSON 格式。