创建一个接口所有枚举继承

package com.gecko.charging.common;public interface BaseEnum {Integer getCode();
}

具体的枚举类型

package com.gecko.charging.partner.enums;import com.alibaba.fastjson.annotation.JSONType;
import com.gecko.charging.common.BaseEnum;
import com.gecko.charging.util.json.EnumDeserializer;
import com.gecko.charging.util.json.EnumSerializer;/*** 合作商类型*/
//@JSONType(serializer = EnumSerializer.class, deserializer = EnumDeserializer.class, serializeEnumAsJavaBean = true)
public enum PartnerType implements BaseEnum {agent(1),//代理商purchaser(2),//采购商operators(3),//运营商;private Integer code;PartnerType(Integer code) {this.code = code;}@Overridepublic Integer getCode() {return this.code;}
}

枚举转换器工程

package com.gecko.charging.common.stringtoenum.converter;import com.gecko.charging.common.BaseEnum;
import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.converter.ConverterFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;@Component
public class EnumConvertFactory implements ConverterFactory<String, BaseEnum> {@Overridepublic <T extends BaseEnum> Converter<String, T> getConverter(Class<T> targetType) {return new StringToIEum<>(targetType);}@SuppressWarnings("all")private static class StringToIEum<T extends BaseEnum> implements Converter<String, T> {private Class<T> targerType;public StringToIEum(Class<T> targerType) {this.targerType = targerType;}@Overridepublic T convert(String source) {if (StringUtils.isEmpty(source)) {return null;}return (T) EnumConvertFactory.getIEnum(this.targerType, source);}}public static <T extends BaseEnum> Object getIEnum(Class<T> targerType, String source) {for (T enumObj : targerType.getEnumConstants()) {if (source.equals(String.valueOf(enumObj.getCode()))) {return enumObj;}}return null;}
}

添加工厂到配置中

package com.gecko.charging.common.stringtoenum.config;import com.gecko.charging.common.stringtoenum.converter.EnumConvertFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate EnumConvertFactory enumConvertFactory;@Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverterFactory(enumConvertFactory);}}

接口中传指定code就可以转换成枚举了!

个人微信公众,经常更新一些实用的干货:

SpringBoot枚举传参相关推荐

  1. springboot前端传参date类型后台处理方式

    springboot前端传参date类型后台处理方式 先说结论:建议大家直接使用@JsonFormat,原因如下: 1.针对json格式:在配置文件中加以下配置 spring.jackson.date ...

  2. delphi中的函数传参如何传枚举参数_我是这样使用SpringBoot(API传参)

    spring boot 传参 spring boot 中的Controller或者RestController接收参数的方法是一样的.这章目标是对几种常用的传参都写个例子. 创建package: co ...

  3. Springboot url传参 @Getmapper

    目录 1. @GetMapper注解传参数 2.传参名称可不可以不同呢? 3.可不可以不输参数名呢? 1. @GetMapper注解传参数 从url中解析得到传递的参数 ?表示要传参了 http:// ...

  4. 记:今晚解决枚举传参问题

    1.使用fastjson @JsonCreater 没有解决 重写convert 没有解决 实现JsonDeserializer 没有解决

  5. shell 脚本启动 SpringBoot程序,用 curl 传参给 post、delete、update等请求的body

    shell脚本启动SpringBoot #!/bin/sh ## java 此处是指定jdk启动 export JAVA_HOME=/usr/local/java/jdk1.8.0_181 # jre ...

  6. Springboot传参详解

    作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...

  7. springboot 使用 @Scheduled注解定时任务, 方法传参解决办法

    如题,springboot使用定时任务很简单,加个注解就行啦 注解的使用方法,1.启动类加上注解 @EnableScheduling //开启定时任务支持 2.方法上使用@Scheduled(cron ...

  8. delphi中的函数传参如何传枚举参数_shell脚本的函数介绍使用和工作常用案例。建议收藏...

    #前言:今天我们来聊聊shell脚本中的函数知识,看一下函数的优势,执行过程和相关的使用案例. #简介 1.函数也具有别名类似的功能 2.函数是把程序里多次调用相同的代码部分定义成一份,然后给这份代码 ...

  9. SpringBoot(Thymeleaf)前端html页面直接的传参和判定

    传参 <div th:replace="~{/commons/commons::sidebar(active='charts.html')}"></div> ...

最新文章

  1. Web项目使用nginx实现代理端口访问,看这篇就够了
  2. VTK:绘图之StackedPlot
  3. 自动生成存储过程的脚本
  4. nginx搭建静态服务器(127.0.0.1/localhost访问)
  5. 理解 OpenStack 高可用(HA) (6): MySQL HA
  6. Vue学习笔记(九) Vue CLI
  7. LuoguP1131 [ZJOI2007]时态同步
  8. Weblogic内存调整
  9. 在线假单词随机生成器
  10. bzoj 3383: [Usaco2004 Open]Cave Cows 4 洞穴里的牛之四(set+BFS)
  11. 用计算机考试有老师引导,河北省教师计算机考试评价题及答案
  12. 51nod 1106 质数检测
  13. 卷积神经网络参数说明
  14. linux grep 日期,linux 文本处理工具之一grep命令详解
  15. debug常规的基本使用
  16. MAML-CNN代码笔记
  17. 设置http代理解决qq音乐pc版无法播放问题
  18. html语言标题怎么居中,HTML – 如何在标题中垂直居中文本?
  19. “3G域名”遭恶炒 用友移动代理被指画饼圈钱
  20. 华为HG8204 光纤猫的路由设置

热门文章

  1. 在线作图|2分钟绘制一张箱线图
  2. Nature子刊:三代测序重构菌株水平宏基因组序列的计算框架iGDA
  3. R语言绘制带聚类树的堆叠柱形图
  4. Science:中科院植物所马克平组揭示土壤真菌与树木密度的关系
  5. pandas基于dataframe特定数据列的指定阈值将原dataframe分割成两个dataframe(split dataframe based on column value threshold
  6. R语言ggplot2可视化、在可视化区域中自定义添加多个大小不同矩形阴影区域、自定义配置大小不同矩形阴影区域的颜色(Adding multiple shadows/rectangles)
  7. R语言构建xgboost模型:使用xgb.DMatrix保存、加载数据集、使用getinfo函数抽取xgb.DMatrix结构中的数据
  8. R语言聚类分析之基于划分的聚类KMeans实战:基于葡萄酒数据
  9. R语言数据结构之数组
  10. Java程序设计-基础知识