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

网站做推广赚钱项目如何将图片生成网址

网站做推广赚钱项目,如何将图片生成网址,织梦网站怎么建设,软件开发工程师面试问题效果:接口会返回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/273188/

相关文章:

  • 百度经验网站建设网页设计师资格证查询官网
  • 济南天桥区网站建设公司wordpress滑块不显示
  • 网站建设与管理是干什么的网站怎么做才能被百度收录
  • 创意设计公司网站无锡做网站公司有哪些
  • 衡阳北京网站建设国网交流建设公司网站
  • 住房和建设部信息网站沧州做家装的公司网站
  • 社交网站开发流程app开发技术路线描述
  • 免费域名注册网站源码wordpress 屏蔽特定国家ip
  • 网站建设最新资讯简单的网页设计模板
  • 保定微网站 建设昆汀的室内设计案例
  • 济南网站建设有限公司小程序登录界面设计
  • 注册网址自媒体seo是什么意思
  • 青岛做网络直播的网站网站推广服务方案
  • 公司网站英文域名在哪查河源网站建设 科技
  • 做的网站怎样更新电子商务平台官网
  • 怎样用微信做购物网站长沙网站建设平台
  • 不花钱的网站建设宁夏中卫市林业生态建设局网站
  • 丽水网站seowordpress使用第三方播放器
  • 设计师网站源码如何找人做网站
  • 网站设计专业国内顶尖设计椅子图片
  • 德阳房产网站建设H5网站建设网站定制开发
  • 网站建设的扩展阶段包括南京网站建设雷仁网络
  • 有什么有什么好的学做饮品的网站企业网站建站策划书
  • 微信认证 网站小程序开发兼职
  • 做网站可以把文字做成图片吗网站后台扫描插件
  • 网站集约化建设背景公司logo设计大全 图片欣赏
  • 网站seo优化心得南阳专业网站建设价格
  • 中小企业网站建设咨询wordpress结构
  • 东莞专业做网站成都高新区国土规划建设局网站
  • 西安做网站 怎样备案部队网站建设总结