1.声明
当前内容主要为本人复习之用,主要为使用Spring中的自定义转换器,采用xml方式实现(主要通过配置ConversionServiceFactoryBean
来实现)
本demo使用的为String转换为Inieger的demo,其他类型也是一样的配置
2.demo
创建需要转换的实体类:
Bean
public class Bean {
private Integer num;
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
@Override
public String toString() {
return "Bean [num=" + num + "]";
}
}
配置
applicationContext.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 配置转换器 -->
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<!-- 这里可以添加多个类型转换器 -->
<bean class="com.hy.java.spring.data.conversion.type.StringToIntegerConverter" />
</set>
</property>
</bean>
<bean id="myBean" class="com.hy.java.spring.data.conversion.type.Bean">
<property name="num" value="1111"/>
</bean>
</beans>
创建测试类:
ConversionServiceTest .java
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @description 当前内容主要用于配置和使用ConversionService
* @author admin
*
*/
public class ConversionServiceTest {
public static void main(String[] args) {
String xml = "/com/hy/java/spring/data/conversion/type/applicationContext.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(xml);
Bean bean = context.getBean("myBean", Bean.class);
System.out.println(bean);
}
}
执行结果:
自定义的StringToIntegerConverter执行成功…
Bean [num=1111]
测试成功!