如何在自定义反序列化器 Spring Boot 中读取路径变量或 URL 参数

Posted

技术标签:

【中文标题】如何在自定义反序列化器 Spring Boot 中读取路径变量或 URL 参数【英文标题】:How to read path variables or URL parameters in Custom deserializer Spring Boot 【发布时间】:2017-11-25 14:06:47 【问题描述】:

我已经为 Spring Boot 应用程序中的实体编写了一个自定义反序列化器。现在我需要在我的自定义反序列化器中访问 URL 参数和路径变量以进行一些数据操作。请告诉我该怎么做。

谢谢

【问题讨论】:

【参考方案1】:

对于路径变量反序列化,您不需要涉及 jackson,但您必须通过定义自己的 org.springframework.core.convert.converter.Converter 来“调整”Spring MVC 本身

例如:

@Component
public class StringToLocalDateTimeConverter
  implements Converter<String, LocalDateTime> 

    @Override
    public LocalDateTime convert(String source) 
        return LocalDateTime.parse(
          source, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
    


@GetMapping("/findbydate/date")
public GenericEntity findByDate(@PathVariable("date") LocalDateTime date) 
    return ...;

Here is an article关于它。

【讨论】:

以上是关于如何在自定义反序列化器 Spring Boot 中读取路径变量或 URL 参数的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot 动态/注解自定义 JSON 反序列化器

Spring Boot:使用自定义序列化器 + 反序列化器消费和生成 XML

杰克逊自定义反序列化器在 Spring Boot 中不起作用

如何使用 Spring Boot 为嵌套实体配置 Jackson 反序列化器

Spring Boot - 自定义 JsonDeserializer 被忽略

spring boot中各种数据不匹配如何处理jackson反序列化错误