我是靠谱客的博主 天真眼神,最近开发中收集的这篇文章主要介绍Spring自定义类型转换器自定义类型转换器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

自定义类型转换器

文章目录

  • 自定义类型转换器
    • 1. 类型转换器
    • 2. 自定义类型转换器
    • 3. 细节

1. 类型转换器

作用:Spring通过类型转换器把配置文件中字符串类型的数据,转换成了对象中成员变量对应类型的数据,进而完成了注入

在这里插入图片描述

2. 自定义类型转换器

当Spring内部没有提供特定类型转换器时,而程序员在应用的过程中还需要使用,那么就 需要程序员自己定义类型转换器。

设计一个场景,我们在配置文件中想要将日期字符串按照想要的格式转换成Date类型。就需要自定义一个类型转换器。

开发步骤:

  • 实现Converter接口

注意全类名为:org.springframework.core.convert.converter.Converter

Converter接口源码:是一个函数式接口。

@FunctionalInterface
public interface Converter<S, T> {

	@Nullable
	T convert(S source);

}

自定义实现类

public class MyConverter implements Converter<String, Date> {
    @Override
    public Date convert(String s) {
        Date date = null;
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            date = simpleDateFormat.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}
  • 在Spring的配置文件中进行配置

MyDateConverter对象创建出来

<bean id="myDateConverter" class="xxxx.MyDateConverter"/>
  • 类型转换器的注册
⽬的:告知Spring框架,我们所创建的MyDateConverter是⼀个类型转换器
<!--⽤于注册类型转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <set>
        	<ref bean="myDateConverter"/>
        </set>
    </property>
</bean>

3. 细节

  • MyDateConverter中的日期的格式,可以通过依赖注入的方式,由配置文件完成赋值 。
public class MyConverter implements Converter<String, Date> {
    private String pattern;
    
    public String getPattern() {
        return pattern;
    }

    public void setPattern(String pattern) {
        this.pattern = pattern;
    }
    
    @Override
    public Date convert(String s) {
        Date date = null;
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
            date = simpleDateFormat.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}

Spring配置文件:

<!--Spring创建MyDateConverter类型对象-->
<bean id="myDateConverter" class="com.baizhiedu.converter.MyDateConverter">
	<property name="pattern" value="yyyy-MM-dd"/>
</bean>
  • ConversionSeviceFactoryBean 定义id属性值必须为 conversionService

  • **Spring框架中有内置期类型的转换器: 日期格式: 2020/05/01 (不支持 : 2020-05-01) **

最后

以上就是天真眼神为你收集整理的Spring自定义类型转换器自定义类型转换器的全部内容,希望文章能够帮你解决Spring自定义类型转换器自定义类型转换器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部