Spring Boot 枚举转换器

admin 发布于:2022-05-22 21:04:05
阅读:loading
在Spring Boot中枚举转换器只是很小的一部分知识点,自定义枚举转换器可以在项目中简化枚举类型参数的传递,同时处理枚举类型参数传递为null值的逻辑,实现的过程比较简单但起到的作用却不小,参考实现代码逻辑如下:
package cn.chendd.base.spring.components;
import ...;
/**
* Webmvc配置
*
* @author chendd
* @date 2019/10/17 11:03
*/
@Configuration
public class WebMvcRegistrationsConfig extends WebMvcConfigurationSupport {
@Override
protected void addFormatters(FormatterRegistry registry) {
//增加自定义枚举类型转换
registry.addConverterFactory(new CommonFormatterEnum());
super.addFormatters(registry);
}
}
package cn.chendd.modules.convert.controller;
import ...;
/**
* 拦截器Controller接口定义
*
* @author chendd
* @date 2022/5/31 20:30
*/
@RestController
@RequestMapping(value = "/convert" , produces = MediaType.APPLICATION_JSON_VALUE)
@Api(value = "枚举转换器解析响应验证接口" , tags = {"枚举转换器解析响应验证"})
public class EnumConvertController {
@GetMapping(value = "/enum" , produces = MediaType.APPLICATION_JSON_VALUE)
@ApiOperation(value = "Get请求传递枚举",notes = "测试响应结果集(<b>传递枚举参数</b>)",
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
@ApiOperationSupport(order = 10)
public String enumParamString(@ApiParam(name = "param" , value = "性别") @RequestParam SexEnum param) {
return param.getText();
}
@PutMapping(value = "/enum" , produces = MediaType.APPLICATION_JSON_VALUE)
@ApiOperation(value = "Put请求传递对象含枚举字段",notes = "测试响应结果集(<b>请求传递枚举参数,支持枚举字段为空时的传递</b>)",
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
@ApiOperationSupport(order = 20)
public Param enumParamObject(@ApiParam(name = "param" , value = "性别") @RequestBody Param param) {
return param;
}
@Getter
public enum SexEnum {
Boy("男") ,
Girl("女"),
Secrecy("密"),
;
SexEnum(String text) {
this.text = text;
}
@ApiModelProperty("文本")
private String text;
}
@Getter
@Setter
public static class Param {
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("年龄")
private Short age;
@ApiModelProperty("性别")
private SexEnum sex;
}
}
源码下载
源码工程下载:源码下载.zip;
点赞
发表评论
当前回复:作者