spring的Converter自定义参数转换
Posted 好大的月亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring的Converter自定义参数转换相关的知识,希望对你有一定的参考价值。
需求场景
有时候项目中移动端和小程序之间可能时间格式的入参不一致,在统一不了格式的时候,只能后端默默扛起所有。
解决方案
此时可以使用我这篇博文中的字段自定义序列化和反序列化
https://blog.csdn.net/weixin_43944305/article/details/107804121
或者使用spring
提供的Converter
,但是只有get
请求或者post表单()
会自动应用上
post表单如下,其实就是以key-value
的形式传输
Converter demo如下
package com.felix.spring_cloud_one.conver;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Component
public class SelfLocalDateTimeResolve implements Converter<String, LocalDateTime>
@Override
public LocalDateTime convert(String source)
if(source.contains("-"))
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return LocalDateTime.parse(source, formatter);
else if (source.contains("/"))
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
return LocalDateTime.parse(source, formatter);
return null;
package com.felix.spring_cloud_one.controller;
import com.felix.spring_cloud_one.params.TestLocalDateTimeParams;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("converter")
public class ConverterController
//consumes接收格式,produces返回格式
@PostMapping(value = "testLocalDateTime" ,consumes = "application/x-www-form-urlencoded", produces = "application/json")
public Object testLocalDateTime(TestLocalDateTimeParams params)
return params;
以上是关于spring的Converter自定义参数转换的主要内容,如果未能解决你的问题,请参考以下文章
spring jpa之实体属性类型转换器AttributeConverter,自定义Converter,通用Converter