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

Spring MVC Converter 啥时候执行转换

Spring MVC中自定义类型转换器(Date)

Spring MVC中自定义类型转换器(Date)

Retrofit 2 0 自定义Converter

自定义类型转换器converter