概述
自定义类型转换器
文章目录
- 自定义类型转换器
- 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自定义类型转换器自定义类型转换器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复