1.自定义类型转换器
1.类型转换器作用:spring通过类型转换器把配置文件中的字符串类型数据,转换成了对象中成员变量对应类型,进而完成了注入
2.自定义类型转换器
原因:党spring内部没有提供特定的类型转换器时,而程序员在应用的过程中还需要使用,那么就需要程序员自己定义类型转换器
类implements Converter接口
/*
convert方法作用:String ---> Date
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.parset(String) ---> Date
param:source 代表的是配置文件中 日期字符串 <value>2020-10-11</value>
return : 当把转换好的Date作为convert方法的返回值后,Spring自动的为birthday属性进行注入(赋值)
*/
public class MyDateConverter implements
Converter<String,Date>{
@override
public Date convert(String source){
Date date=null;
try {
SimpleDateFormat sdf=new SimpleDateFromat("yyyy-MM-dd");
date = sdf.parse(source);
}catch(ParseException e){
e.printStackTrace();
}
return date;
}
}
在spring的配置文件中进行配置
MyDateConverter对象创建出来
<bean id="myDateConverter" class="xxx.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 MyDateConverter implements Converter<String, Date> { private String pattern; public String getPattern() { return pattern; } public void setPattern(String pattern) { this.pattern = pattern; } /* convert方法作用:String ---> Date SimpleDateFormat sdf = new SimpleDateFormat(); sdf.parset(String) ---> Date param:source 代表的是配置文件中 日期字符串 <value>2020-10-11</value> return : 当把转换好的Date作为convert方法的返回值后,Spring自动的为birthday属性进行注入(赋值) */ @Override public Date convert(String source) { Date date = null; try { SimpleDateFormat sdf = new SimpleDateFormat(pattern); date = sdf.parse(source); } catch (ParseException e) { e.printStackTrace(); } return date; } }
<!--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)