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

大良营销网站建设价格电子工程网注册

大良营销网站建设价格,电子工程网注册,网络科技公司名字取名大全,外贸网站模版场景: json大体格式一致,但是 ext_info 扩展字段对象,场景不同字段不同根据某字段类型,不同值,对应不同实现的 Component,处理不同场景这里根据 event,来做不同处理 {"data": {"event"…

场景:

  • json大体格式一致,但是 ext_info 扩展字段对象,场景不同字段不同
  • 根据某字段类型,不同值,对应不同实现的 Component,处理不同场景
  • 这里根据 event,来做不同处理
{"data": {"event": "eventWoMan","event_id": "123","ext_info": {"dist_sex": "女","dist_height": "162"},"target_name": "美女类型json"},"seq": 0
}{"data": {"event": "eventWoMan","event_id": "123","ext_info": {"dist_name": "小树","dist_age": "18"},"target_name": "帅哥类型json"},"seq": 0
}

接收类:

@lombok.Data
public class BusinessMsg<T> {private T data;private int seq;}
import com.fasterxml.jackson.annotation.JsonProperty;@lombok.Data
public class MsgData<T> {private String event;@JsonProperty("event_id")private String eventId;@JsonProperty("ext_info")private T extInfo;@JsonProperty("target_name")private String targetName;}
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;@Data
public class ExtInfoMan {/*** 目标姓名*/@JsonProperty("dist_name")private String distName;/*** 目标年龄*/@JsonProperty("dist_age")private String distAge;}
@Data
public class ExtInfoWoMan {/*** 目标性别*/@JsonProperty("dist_sex")private String distSex;/*** 目标高度*/@JsonProperty("dist_height")private String distHeight;}

处理service:

public interface JsonTService {/*** 预处理消息* @param businessMsg*/String handlerMsg(BusinessMsg<MsgData<JsonNode>> businessMsg);}
@Service("eventMan")
public class JsonManServiceImpl implements JsonTService {@Resourceprivate ObjectMapper objectMapper;@SneakyThrows@Overridepublic String handlerMsg(BusinessMsg<MsgData<JsonNode>> businessMsg) {JsonNode extInfo = businessMsg.getData().getExtInfo();ExtInfoMan exitInfo = objectMapper.treeToValue(extInfo, ExtInfoMan.class);return exitInfo.toString();}
}
@Service("eventWoMan")
public class JsonWoManServiceImpl implements JsonTService {@Resourceprivate ObjectMapper objectMapper;@SneakyThrows@Overridepublic String handlerMsg(BusinessMsg<MsgData<JsonNode>> businessMsg) {JsonNode extInfo = businessMsg.getData().getExtInfo();ExtInfoWoMan extInfoWoMan = objectMapper.treeToValue(extInfo, ExtInfoWoMan.class);return extInfoWoMan.toString();}
}

策略处理

import com.service.JsonTService;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;/*** @author xiaoshu*/
@Service
public class JsonStrategyContext {private final Map<String, JsonTService> orderStrategyMap = new ConcurrentHashMap<>();public JsonStrategyContext(Map<String, JsonTService> strategyMap) {this.orderStrategyMap.putAll(strategyMap);}public JsonTService getResource(String event){return orderStrategyMap.get(event);}
}

实际接口接收:

	@Resourceprivate JsonStrategyContext jsonStrategyContext;@ApiOperation(value = "泛型处理,同格式json,扩展字段不一")@PostMapping("/revice")public String revice(@RequestBody BusinessMsg<MsgData<JsonNode>> businessMsg){String event = businessMsg.getData().getEvent();return jsonStrategyContext.getResource(event).handlerMsg(businessMsg);}
http://www.yayakq.cn/news/919946/

相关文章:

  • 单页网站规划设计书贵阳仿站定制模板建站
  • 帝国cms 调用网站名称微信上wordpress
  • 阿里云主机搭建网站wordpress 导出
  • 网站建设要做哪些前期准备工作品牌工厂网站建设
  • 网站设置多少个关键词企业网站栏目设置说明
  • 网站说服力营销型网站策划 pdf买软件的网站建设
  • 上海网站设计建设网页设计与制作大全
  • 建设网站首页网站后期维护协议
  • 巴中建设厅网站电话室内设计师做单网站
  • 物流网站开发实训岳阳网吧
  • 网站建设市场价格什么网站值得做
  • 网站备案撤销营销推广包括几个方面
  • 网站建设公司 html5模板关键词优化推广策略
  • 零基础学建网站网站开发合同注意事项
  • 网站整站模板下载论坛是做网站还是app好
  • 网站建设的招聘要求济南网站推广服务
  • 标准网站建设报价淘客帝国 wordpress
  • 做网站廊坊搬瓦工vps wordpress
  • 网站建设模板51微信小程序商城制作公司
  • 上海电商网站建设公司wordpress国内工作室主题
  • 个人网站开发模式南昌网站排名优化
  • 福州自助建站wordpress手机图标没了
  • wap网站为什么没有了装饰公司网站制作
  • 泉州哪里做网站上海网站建设公司有多少家
  • 报价网站建设企业密信
  • 玉泉路网站制作织梦做网站要多长时间
  • 做网站不切片可以吗申请公司费用
  • 门户移动网站建设站长工具麻豆
  • 重庆微网站建设哪家好做资源下载网站用什么工具
  • 做网站需要提供哪些信息python培训视频