SpringBoot自定义请求参数转换器

需求

我们可能对接客户的系统的时候,虽然Spring为我们提供的很多方便的转换器,但是遇到还是可能遇到需要自定义请求参数转换器的情况。

日期转换器

SpringBoot默认是没有配置日期转换器的我们可以自己写,也可以使用配置让SpringBoot来生成:https://www.jianshu.com/p/4b29beffcd8e

日期转换器配置代码:

package com.wzq.config.converter;

import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @description: 字符串转换为DateConverter
 * @author: Wzq
 * @create: 2020-01-17 16:33
 */
@Component
public class StringToDateConverter implements Converter<String, Date> {

    private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

    @Override
    public Date convert(String s) {
        Date parse = null;
        try {
            parse = simpleDateFormat.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return parse;
    }
}

自定义转换器

package com.wzq.config.converter;


import com.wzq.test.model.UserModel;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

/**
 * @description: 字符串转UserModel类
 * @author: Wzq
 * @create: 2020-01-17 16:24
 */
@Component
public class StringToUserModelConverter implements Converter<String, UserModel>{

    @Override
    public UserModel convert(String s) {
        String[] split = s.split("-");
        String userName = split[0];
        Integer age = Integer.parseInt(split[1]);
        UserModel userModel = new UserModel();
        userModel.setUserName(userName);
        userModel.setAge(age);
        return userModel;
    }
}

UserModel实体类

package com.wzq.test.model;

import lombok.Data;

import java.util.Date;

/**
 * @description:
 * @author: Wzq
 * @create: 2020-01-17 15:17
 */
@Data
public class UserModel {
    private String userName;
    private Integer age;
    private Date date;
}

请求地址

http://192.168.0.115:8080/myproject/test/noAnnotationsMethod?userName=GosingWu&age=18&date=2012-12-12

成功:
image.png

个人微信公众,经常更新一些实用的干货:
image.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值