博客
关于我
28-springMvc注解开发-类型转换器
阅读量:243 次
发布时间:2019-03-01

本文共 2266 字,大约阅读时间需要 7 分钟。

文章目录

实现数据类型转换

1 Converter接口

@FunctionalInterface
public interface Converter
{
/** 提供类型转换的逻辑 */
@Nullable
T convert(S source);
}

2 案例

之前通过InitBinder和DateTimeFormat注解实现过字符串转date,现在也可以通过Converter实现该功能

package study.wyy.springboot.anno.web.convert;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author by wyaoyao
* @Description
* @Date 2021/2/15 7:49 下午
*/
@Component
public class String2DateConverter implements Converter
{
@Override
public Date convert(String source) {
if (StringUtils.isEmpty(source)) {
throw new NullPointerException("Source can not be null!");
}
try {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.parse(source);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

注册

package study.wyy.springboot.anno.web.advice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.format.datetime.DateFormatter;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
public class DataFormatAdvice {
@Autowired
private Converter
stringToDateConverter;
@InitBinder
public void dateBinder(WebDataBinder dataBinder) {
ConversionService conversionService = dataBinder.getConversionService();
if (conversionService instanceof GenericConversionService) {
GenericConversionService genericConversionService = (GenericConversionService) conversionService;
genericConversionService.addConverter(stringToDateConverter);
}
}
}

转载地址:http://msrv.baihongyu.com/

你可能感兴趣的文章
node.js 配置首页打开页面
查看>>
node.js+react写的一个登录注册 demo测试
查看>>
Node.js中环境变量process.env详解
查看>>
Node.js之async_hooks
查看>>
Node.js升级工具n
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js基于Express框架搭建一个简单的注册登录Web功能
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Node.js安装和入门 - 2行代码让你能够启动一个Server
查看>>
node.js安装方法
查看>>
Node.js官网无法正常访问时安装NodeJS的方法
查看>>
Node.js的循环与异步问题
查看>>
Node.js高级编程:用Javascript构建可伸缩应用(1)1.1 介绍和安装-安装Node
查看>>
nodejs + socket.io 同时使用http 和 https
查看>>
NodeJS @kubernetes/client-node连接到kubernetes集群的方法
查看>>
Nodejs express 获取url参数,post参数的三种方式
查看>>
nodejs http小爬虫
查看>>
nodejs libararies
查看>>
nodejs npm常用命令
查看>>