当前位置: 首页 > news >正文

东莞家用台灯东莞网站建设wordpress读取速度慢

东莞家用台灯东莞网站建设,wordpress读取速度慢,高端品牌名称,网站可以做动画轮播吗效果:接口会返回orderType,但是这个orderType是枚举的类型(1,2,3,4),我想多返回一个orderTypeDesc给前端展示,这样前端就可以直接拿orderTypeDesc使用了。 1. 定义注解 …

效果:接口会返回orderType,但是这个orderType是枚举的类型(1,2,3,4),我想多返回一个orderTypeDesc给前端展示,这样前端就可以直接拿orderTypeDesc使用了。

1. 定义注解

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
//作用是将当前类上的注解也追加到目标类上,如果不加的话,目标类及时加了@EnumTranslation注解,也不会集成该注解的所有注解
@JacksonAnnotationsInside
@JsonSerialize(using = EnumTranslationSerialize.class)
public @interface EnumTranslation {//生成的属性名,不写默认原名+DescString generateFieldName() default "";//参考的枚举,会根据改枚举的code获取对应的descClass<? extends Enum<?>> targetEnum() ;
}

2. 定义EnumTranslationSerialize类

EnumTranslationSerialize继承了JsonSerializer,实现了ContextualSerializer,用于序列化时多生成一个字段返回。

ContextualSerializer的作用:为了在序列化时获取属性上的注解信息,然后根据注解信息重新创建EnumTranslationSerialize来序列化,这样就能根据注解的配置来序列化了。

@Slf4j
public class EnumTranslationSerialize<E> extends JsonSerializer<Object> implements ContextualSerializer {private String targetFieldName;private LinkedHashMap<String, String> enumMap;public EnumTranslationSerialize() {//需要空构造方法,请勿删除}/*** 构造方法,获取当前属性名,生成的属性名,目标枚举*/public EnumTranslationSerialize(String fieldName, String targetFieldName, Class enumClass) {if (StringUtils.isNotBlank(targetFieldName)) {this.targetFieldName = targetFieldName;} else {this.targetFieldName = fieldName + "Name";}enumMap = new LinkedHashMap<>();try {Method getCode = enumClass.getMethod("getCode");Method getDesc = enumClass.getMethod("getDesc");for (Object everyEnum : EnumUtil.getEnumMap(enumClass).values()) {enumMap.put(getCode.invoke(everyEnum).toString(), getDesc.invoke(everyEnum).toString());}} catch (Exception e) {log.error(ExceptionUtils.getStackTrace(e));}}/*** 序列化规则*/@Overridepublic void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {if (Objects.isNull(o)) {return;}try {String codeValue = o.toString();jsonGenerator.writeString(codeValue);String value = enumMap.get(codeValue);//多写入一个属性if (Objects.nonNull(value)) {jsonGenerator.writeFieldName(this.targetFieldName);jsonGenerator.writeObject(value);}} catch (Exception e) {log.error(ExceptionUtils.getStackTrace(e));}}/*** ContextualSerializer接口的方法,作用是获取属性上的枚举*/@Overridepublic JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {if (beanProperty != null) {EnumTranslation t = beanProperty.getAnnotation(EnumTranslation.class);if (t != null) {return new EnumTranslationSerialize<>(beanProperty.getName(), t.targetFieldName(), t.enumC());}}return serializerProvider.findNullValueSerializer(beanProperty);}
}

3. 使用

@Data
public class OrderVO {@Schema(description = "订单类型")@EnumTranslation(generateFieldName = "orderTypeDesc", enumC = OrderType.class)private Long orderType;
}
http://www.yayakq.cn/news/880369/

相关文章:

  • 站长网ppt模板下载建筑人才网官方网站入口
  • 龙岗企业网站改版公司手机网站集成支付宝
  • 沧州网站建设代理价格中企动力官网登录
  • 网站建设公司 电话销售没什么效果asp access网站开发实例精讲
  • 购买主机可以做网站吗vi设计作品
  • 什么网站专做二手名表wordpress显示图片
  • 上市设计网站企业的建站方式
  • 网站建设和优化的步骤上海app定制哪家好
  • 国内知名的网站设计公司做一个网页需要什么技术
  • 网站开发开源框架网络工程师培训班要多少钱
  • 手机网站域名解析购物网站 服务器 带宽 多大
  • 优秀设计网站大全南京建设局的网站首页
  • 微信扫码即可打开的网站如何做营销型网站设计方针
  • 网站开发好还要空间吗高端装饰公司网站设计
  • 公司网站如何建立福州建设厅网站
  • 中国建设银行车主卡网站网页布局设计框架图表
  • 雅安建设局网站石家庄市网站制作
  • 顺德装修网站建设自己做影视会员网站
  • 怎么看一个网站是不是外包做的邯郸网站制作基本流程
  • 东莞规划局官方网站成都网站建设优化企业排名
  • 怎样制作网站的步骤企业网站开发外包公司
  • 长春市长春网站建设哪家好网站建设分金手指排名一
  • 惠州东莞网站建设融创中国最新消息
  • 如何自己做网站做淘宝客dede单本小说网站源码
  • 学做网站设计需要多少钱网站搜索框代码怎么做
  • 怎么搭建自己的网站卖货代刷网站只做软件吗
  • 网站推广计划wordpress:代码
  • 网站建设幻灯片背景图片素材网络推广怎么做效果好
  • qq建设网站首页江苏公司响应式网站建设报价
  • 个人网站开发流程如何建设企业人力资源网站