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

网站建设如何开单网站开发者模式有什么用

网站建设如何开单,网站开发者模式有什么用,初中信息技术 网站制作,网站建设那种语言好MongoDB 字段中数据类型不一致序列化异常排查与处理 背景如下#xff0c;因为项目迁移愿意#xff0c;一个使用Mongodb的业务拥有C#和Java两组Api。Java Api开发和测试都很顺利。上线一段时间后#xff0c;客服反馈记录都不见了。查看数据库发现#xff0c;时间字段拥有两…MongoDB 字段中数据类型不一致序列化异常排查与处理 背景如下因为项目迁移愿意一个使用Mongodb的业务拥有C#和Java两组Api。Java Api开发和测试都很顺利。上线一段时间后客服反馈记录都不见了。查看数据库发现时间字段拥有两种格式其中一种是数组类型如[636693353404905287, 480]另一种是日期类型如0001-01-01T00:00:00Z 排查原因 首先看了原有C#代码的逻辑使用的是DateTimeOffset类型存入的数据库。Java使用的是LocalDateTime类型。经过调用Api测试后发现使用C#接口创建的数据是数组格式。接下来就是在Java中对这个Document的序列化进行处理。 解决方案 首先看到[636693353404905287, 480]想到的就是时间戳第二位应该保存的是时区。写了一个测试方法将636693353404905287转为LocalDatetime初步测试将初始时间1901-01-01时区偏移为480分钟。经过多种类型的测试转化为了正确的时间人工记忆创建记录的时间。 知道了如何转化就要在java解析时使用自定义的序列化器。 首先创建List转LocalDateTime的序列化器 import org.springframework.core.convert.converter.Converter; import org.springframework.data.convert.ReadingConverter; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.List;/***** 包含如下格式脏数据[636693353404905287, 480], 经测试是旧版c#接口导致的并试验起始时间是0001-01-01T00:00:00Z* 并且此时间戳不需要进行时区转换*/ ReadingConverter public class ArrayListToLocalDateTimeConverter implements ConverterListObject, LocalDateTime {Overridepublic LocalDateTime convert(ListObject source) {if (source.size() 2 source.get(0) instanceof Long) {long timestamp (Long) source.get(0);// 假设起始时间是1601-01-01T00:00:00Z请根据需要进行调整Instant startInstant Instant.parse(0001-01-01T00:00:00Z);// 注意原始时间戳可能需要根据实际情况调整计算方式Instant actualInstant startInstant.plusMillis(timestamp / 10_000);return LocalDateTime.ofInstant(actualInstant, ZoneOffset.UTC);}throw new IllegalArgumentException(Invalid source for conversion: source);} }然后在MongoDB的配置类中注册 import com.mongodb.MongoClientURI; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.data.mongodb.MongoDbFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.SimpleMongoDbFactory; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.convert.MongoCustomConversions;import java.util.Arrays;Configuration public class MongoConfig {Value(${spring.data.mongodb.uri})private String uri;Bean(name mongoTemplate)Primarypublic MongoTemplate mongoTemplate() {MongoTemplate template new MongoTemplate(mongoDbFactory());customizeMongoTemplate(template);return template;}BeanPrimarypublic MongoDbFactory mongoDbFactory() {return new SimpleMongoDbFactory(new MongoClientURI(uri));}/*** 为了解决mongodb中的时间戳转换问题*/Beanpublic MongoCustomConversions mongoCustomConversions() {return new MongoCustomConversions(Arrays.asList(new ArrayListToLocalDateTimeConverter()));}private void customizeMongoTemplate(MongoTemplate template) throws Exception {MappingMongoConverter converter (MappingMongoConverter) template.getConverter();converter.setCustomConversions(mongoCustomConversions());converter.afterPropertiesSet();}}uri其中uri时从配置文件中读取的mongo 的数据库连接。 mongoTemplate注入MongoTemplate用于操作数据库。 mongoCustomConversions注入自定义的转换器用于将数据库中的数据转换为Java中的数据。 customizeMongoTemplate将自定义的转换器注入到MongoTemplate中。 这种是单数据源配置如果要有多数据源将MongoTemplate和MongoDbFactory复制的注入名称修改为不同的名称即可。 总结 经过配置如果类型是数组则会触发进行解析。该字段正常的数据可以直接映射。 后续会将C#的流量转发到Java接口然后将C#接口下线。
http://www.w-s-a.com/news/568558/

相关文章:

  • 中山营销型网站厦门工程建设招聘信息网站
  • 网站开发 外包空心找回微信
  • 长沙市网站推广多少钱网站开发流程图和介绍
  • 网站后缀net施工企业自建自用的工程可以不进行招标是否正确
  • 鄂尔多斯市住房和城乡建设厅网站帮别人做网站赚钱6
  • 宜选科技就是帮人做网站动漫制作专业主修课程
  • 怎么做网站免费的教程温州捷创网站建设
  • 做免费推广的网站有哪些深圳华强北最新消息
  • 电子商务网站建设规划开题报告桂林漓江景区游玩攻略
  • 程序员参与洗钱网站建设做视频网站需要多少钱
  • 网站建设背景是什么企业邮箱怎么写
  • 山东省建设资格中心网站iis wordpress安装教程
  • 做的网站 显示乱码怎么做微信小程序平台
  • 怎样建设打字网站怎样增加网站浏览量
  • 网站建设方案的征求意见网站主机免备案
  • 共享农业网站建设郑州市建网站
  • 成都网站建设四川冠辰网站建设带会员系统的网站模板
  • 水果网站建设方案书wordpress get_the_category
  • 第一ppt网站官网买域名价格
  • 网站 报价单自己做的网站如何上传
  • 天津网站建立辽宁建设工程信息网2017年定额人工费系数
  • 柳州网站优化搜索引擎优化方法案例
  • 什么网站比较少人做响应式网站开发周期
  • 公司网站欢迎语工作期间员工花钱做的网站
  • 新网站该如何做网站优化呢网络营销网站设计
  • 旅游门户网站模板下载做策划网站推广怎么写简历
  • 建设隔离变压器移动网站wordpress动态导航
  • 平潭建设局网站中国免费素材网
  • 虚拟主机可以做视频视频网站吗做爰全过程免费的视频网站有声音
  • 专业做家电经销的网站网络管理系统有哪几部分组成