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

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

文章目录

实现数据类型转换

1 Converter接口

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

2 案例

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

package study.wyy.spring.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 下午 */@Componentpublic class String2DateConverter implements Converter
{ @Override public Date convert(String source) { //1.判断来源是否有值 if (StringUtils.isEmpty(source)) { throw new NullPointerException("Source can not be null!"); } try{ //2.定义转换器 DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //3.转换并返回 return format.parse(source); }catch (Exception e){ e.printStackTrace(); } return null; }}

注册

package study.wyy.spring.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;@ControllerAdvicepublic class DataFormatAdvice {       @Autowired    private Converter stringToDateConverter;    @InitBinder    public void dateBinder(WebDataBinder dataBinder){           //1.获取转换服务对象        ConversionService conversionService = dataBinder.getConversionService();        //2.判断conversionService是否为GenericConversionService类型        if(conversionService instanceof GenericConversionService){               //3.强转            GenericConversionService genericConversionService = (GenericConversionService)conversionService;            //4.添加类型转换器            genericConversionService.addConverter(stringToDateConverter);        }    }}

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

你可能感兴趣的文章
mysql 中的all,5分钟了解MySQL5.7中union all用法的黑科技
查看>>
Mysql 中的日期时间字符串查询
查看>>
MySQL 中锁的面试题总结
查看>>
MySQL 中随机抽样:order by rand limit 的替代方案
查看>>
MySQL 为什么需要两阶段提交?
查看>>
mysql 为某个字段的值加前缀、去掉前缀
查看>>
mysql 主从
查看>>
mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
查看>>
mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
查看>>
mysql 主从关系切换
查看>>
mysql 主键重复则覆盖_数据库主键不能重复
查看>>
Mysql 优化 or
查看>>
mysql 优化器 key_mysql – 选择*和查询优化器
查看>>
MySQL 优化:Explain 执行计划详解
查看>>
Mysql 会导致锁表的语法
查看>>
mysql 使用sql文件恢复数据库
查看>>
mysql 修改默认字符集为utf8
查看>>
Mysql 共享锁
查看>>
MySQL 内核深度优化
查看>>
mysql 内连接、自然连接、外连接的区别
查看>>