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

禹州市城乡建设局网站海淀发布会

禹州市城乡建设局网站,海淀发布会,百度上怎么发布信息啊,138ip域名查询网文章目录 1.自定义反序列化器2.配置类与自定义 ObjectMapper客户端 需求:OpenFeign配置自定义decode,解析http请求返回的时间字符串 1.自定义反序列化器 Date 自定义反序列化器 import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.j…

文章目录

    • 1.自定义反序列化器
    • 2.配置类与自定义 ObjectMapper
    • 客户端

需求:OpenFeign配置自定义decode,解析http请求返回的时间字符串

1.自定义反序列化器

Date 自定义反序列化器

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;public class MultiFormatDateDeserializer extends JsonDeserializer<Date> {private static final List<String> FORMATS = Arrays.asList("yyyy-MM-dd HH:mm:ss","yyyy-MM-dd'T'HH:mm:ss","yyyy-MM-dd","MM/dd/yyyy","dd-MM-yyyy");@Overridepublic Date deserialize(JsonParser parser, DeserializationContext context) throws IOException {String dateString = parser.getText();for (String format : FORMATS) {try {return new SimpleDateFormat(format).parse(dateString);} catch (ParseException ignored) {// 尝试下一个格式}}System.err.println("Unparseable date: " + dateString);throw new IOException("Unparseable date: " + dateString);}
}

LocalDate 自定义反序列化器

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;public class MultiFormatLocalDateDeserializer extends JsonDeserializer<LocalDate> {private static final List<DateTimeFormatter> FORMATTERS = Arrays.asList(DateTimeFormatter.ISO_LOCAL_DATE,           DateTimeFormatter.ofPattern("MM/dd/yyyy"),   DateTimeFormatter.ofPattern("dd-MM-yyyy"),    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")  );@Overridepublic LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException {String dateString = parser.getText();for (DateTimeFormatter formatter : FORMATTERS) {try {return LocalDate.parse(dateString, formatter);} catch (Exception ignored) {// 尝试下一个格式}}throw new IOException("Unparseable date: " + dateString);}
}

LocalDateTime 自定义反序列化器

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;public class MultiFormatLocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {private static final List<DateTimeFormatter> FORMATTERS = Arrays.asList(DateTimeFormatter.ISO_LOCAL_DATE_TIME,       // yyyy-MM-dd'T'HH:mm:ssDateTimeFormatter.ISO_LOCAL_DATE,            // yyyy-MM-ddDateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm a"), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") );@Overridepublic LocalDateTime deserialize(JsonParser parser, DeserializationContext context) throws IOException {String dateString = parser.getText();for (DateTimeFormatter formatter : FORMATTERS) {try {return LocalDateTime.parse(dateString, formatter);} catch (Exception ignored) {// 尝试下一个格式}}throw new IOException("Unparseable date: " + dateString);}
}

2.配置类与自定义 ObjectMapper

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import feign.Logger;
import feign.codec.Decoder;
import feign.codec.Encoder;
import feign.jackson.JacksonDecoder;
import feign.jackson.JacksonEncoder;
import org.apache.kafka.common.utils.Java;
import org.springframework.context.annotation.Bean;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;/*** <p>** </p>** @author pengapeng* @since 2024-12-13*/
public class CustomFeignConfig {@Beanpublic ObjectMapper customObjectMapper() {ObjectMapper objectMapper = new ObjectMapper();// 注册 Java 时间模块JavaTimeModule javaTimeModule = new JavaTimeModule();// 注册自定义反序列化器javaTimeModule.addDeserializer(LocalDateTime.class, new MultiFormatLocalDateTimeDeserializer());javaTimeModule.addDeserializer(LocalDate.class, new MultiFormatLocalDateDeserializer());javaTimeModule.addDeserializer(Date.class, new MultiFormatDateDeserializer());objectMapper.registerModule(javaTimeModule);return objectMapper;}@Beanpublic Decoder feignDecoder() {ObjectMapper customObjectMapper = customObjectMapper();System.out.println("Using Custom Decoder with ObjectMapper: " + customObjectMapper);return new JacksonDecoder(customObjectMapper);}@Beanpublic Encoder feignEncoder() {ObjectMapper customObjectMapper = customObjectMapper();System.out.println("Using Custom Encoder with ObjectMapper: " + customObjectMapper);return new JacksonEncoder(customObjectMapper);}@BeanLogger.Level feignLoggerLevel() {return Logger.Level.FULL;}
}

注意添加feign.jackson的依赖,选择合适的版本,不匹配可能发生错误。

        <dependency><groupId>io.github.openfeign</groupId><artifactId>feign-jackson</artifactId><version>10.4.0</version></dependency>

在这里插入图片描述

客户端

@FeignClient(url = "http://localhost:8088/", name = "test-feign-client",configuration = CustomFeignConfig.class)
public interface TestFeignClient {@GetMapping("/votecms/test/testFeign")TestDO testFeign();
}

测试所用的TestDO类为

@Data
public class TestDO {private String name;private Integer age;private Long id;private Date createTime1;private Date createTime2;private LocalDateTime updateTime;
}

测试时所用版本:SpringBoot 2.3.12.RELEASE、SpringCloud 2.2.1.RELEASE

http://www.yayakq.cn/news/324722/

相关文章:

  • 做ppt好的网站有哪些有没有只做软装方案收设计费的网站
  • 电商网站开发设计方法行业网站建设哪家专业
  • 南昌网站建设机构拱墅抖音seo搜索排名推广
  • 电脑手机一体网站谈谈百度和谷歌seo优化的区别
  • 简述企业网站建设的目的有哪些四川住房和城乡建设厅网站电话
  • 学做ps的软件的网站有哪些内容网站手机端做app开发工具
  • 网上做网站网站网站专题欣赏
  • nodejs做的网站长沙百度搜索排名优化
  • 微商城网站建设好么健身房网站建设案例
  • 七星彩的网站怎么做的搜阅网站建设
  • 建站程序员招聘公司网站市场价
  • 怎么查一个网站做的外链最专业的网站建设哪家好
  • 天津技术网站建设房地产开发建设工程口碑好
  • 成都公司建站模板信阳做网站 汉狮网络
  • 有域名后续怎么做网站网站四对联广告代码
  • 怎么设置网站标题wordpress使用国外主题
  • 成都动力无限科技有限公司做网站天门网站网站建设
  • 网站文字排版网站开发的项目总结
  • 网站建设典型材料大连seo排名外包
  • 做网站的客户哪里找网站建设教程开源代码下载
  • 文昌市住房和城乡建设局网站wordpress添加原创logo
  • 什么是flash网站wordpress调用菜单函数
  • 王晴儿网站建设中企动力企业邮箱官网
  • 无锡外贸网站建设上线了建站
  • 租车网站模版微信分销系统ppt
  • 做网站的学校上饶专业的企业网站开发公司
  • 网站开发导航栏在什么网站能找到做外贸的邮箱
  • 做网站需要多少兆专线哪个网站可以做兼职
  • 网站建设首选九零后网络在线音乐网站开发
  • 房地产网站设计公司对外宣传及网站建设文件稿