在使用set注入的时候,会有这个问题
比如先定义一个对象类,Dept
package converter;
import java.util.Date;
public class Dept {
private String name;
private Date date;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
比如applicationContext.xml文件中进行set注入
<bean id="dept" class="converter.Dept">
<property name="name" value = "han"></property>
<property name="date" value="2022-12-3"></property>
</bean>
applicationContext.xml文件中value默认是string类型,在进行转换的时候,会调用spring默认的类型转换器类Converter,但是像Date类型的参数,是没法进行转换的(因为每个国家的日期格式不一样,spring不能识别是那种样式的),需要手动进行转化
第一、编写一个转化类MyConvertion,实现Converter接口
package converter;
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyConvertion implements Converter<String, Date> {
public Date convert(String s) {
Date date = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
date = simpleDateFormat.parse(s);
} catch (ParseException e) {
throw new RuntimeException(e);
}
return date;
}
}
第二、applicationContext.xml中添加如下配置:把我们自己写的转化类注入到spring自带的类转化器
<bean id="myConvertion" class="converter.MyConvertion"></bean>
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<ref bean="myConvertion"></ref>
</set>
</property>
</bean>
第三、这样,再进行调用的时候,Date类型就能类型转化了