Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器
2017-04-13 10:12
537 查看
1、通过继承JDK 中的
java.beans.PropertyEditorSupport
类来实现自己的编辑器类
,该类用于实现将String 类型转换成您需要的数据类型。然后我们只需要在Spring
的容器中对这个编辑器进行有效的“注册”便可以实现Spring 在装配Bean 时自动的将String 类型转换成我们自定义的类型。
如何编辑自己的PropertyEditor,其实需要了解一点java.beans包的知识,在该包中,有一个
java.beans.PropertyEditor的接口,它定义了一套接口方法(12个),即通过这些方法如何将一个String变成内部的一个对
象,这两个方法是比较重要的:
a)setValue(Object value) 直接设置一个对象
b)setAsText(String text) 通过一个字符串来构造对象,一般在此方法中解析字符串,将构造一个类对象,调用setValue(Object)来完成属性对象设置操作。
2)实现所有的接口方法是麻烦的,java.beans.PropertyEditorSupport 适时登场,一般情况下,我们通过扩展这个方便类即可。
2、CustomEditorConfigurer 类
用于实现在Spring 中注册自己定义的编辑器
。它是Spring
当中一个非常有用的工厂后处理类(工厂后处理通过Spring 的BeanFactoryPostProcessor 接口实现, 它是在Spring
容器启动并初始化之后进行对Spring 容器的操作类)。在Spring 中已经注册了不少编辑器类,他们都用于String
类型转换为其他的数据类型,如URL,Date等。
配置CustomEditorConfigurer 类:
CustomEditorConfigurer
类中有一个customEditor属性,它是一个Map 类型。通过配置它便实现了自定义的编辑器注册。这个Map
的键值对对应着转换类型和编辑器(转换类型是Key,编辑器是Value)。
自定义编辑器可以简化Spring 的装配Bean。使其更加的简单。不容易发生配置错误。 PS:如果使用Spring
的ApplicationContext容器,那么只需在Spring 的配置文件中进行简单的装配,而对于Bean 工厂可能需要手动的注册才能使用。
例子1:http://www.iteye.com/topic/24660
例子2:http://gundumw100.iteye.com/blog/574440
java.beans.PropertyEditorSupport
类来实现自己的编辑器类
,该类用于实现将String 类型转换成您需要的数据类型。然后我们只需要在Spring
的容器中对这个编辑器进行有效的“注册”便可以实现Spring 在装配Bean 时自动的将String 类型转换成我们自定义的类型。
如何编辑自己的PropertyEditor,其实需要了解一点java.beans包的知识,在该包中,有一个
java.beans.PropertyEditor的接口,它定义了一套接口方法(12个),即通过这些方法如何将一个String变成内部的一个对
象,这两个方法是比较重要的:
a)setValue(Object value) 直接设置一个对象
b)setAsText(String text) 通过一个字符串来构造对象,一般在此方法中解析字符串,将构造一个类对象,调用setValue(Object)来完成属性对象设置操作。
2)实现所有的接口方法是麻烦的,java.beans.PropertyEditorSupport 适时登场,一般情况下,我们通过扩展这个方便类即可。
2、CustomEditorConfigurer 类
用于实现在Spring 中注册自己定义的编辑器
。它是Spring
当中一个非常有用的工厂后处理类(工厂后处理通过Spring 的BeanFactoryPostProcessor 接口实现, 它是在Spring
容器启动并初始化之后进行对Spring 容器的操作类)。在Spring 中已经注册了不少编辑器类,他们都用于String
类型转换为其他的数据类型,如URL,Date等。
配置CustomEditorConfigurer 类:
CustomEditorConfigurer
类中有一个customEditor属性,它是一个Map 类型。通过配置它便实现了自定义的编辑器注册。这个Map
的键值对对应着转换类型和编辑器(转换类型是Key,编辑器是Value)。
自定义编辑器可以简化Spring 的装配Bean。使其更加的简单。不容易发生配置错误。 PS:如果使用Spring
的ApplicationContext容器,那么只需在Spring 的配置文件中进行简单的装配,而对于Bean 工厂可能需要手动的注册才能使用。
//User.java public class User { private String name; private int age; 。。。 }
//用到User的类:UserContainer.java public class UserContainer { private User user; public void setUser(User user) { this.user = user; } public void printUser() { System.out.println(user.getName() + " " + user.getAge()); } }
//将配置中的转换的类:TransformUser.java public class TransformUser extends PropertyEditorSupport { public void setAsText(String text) { String[] data = text.split(","); User user = new User(); user.setName(data[0]); user.setAge(Integer.parseInt(data[1])); this.setValue(user); } }
在applicationContext.xml文件中。 <bean id="user" class="User" /> <bean id="transformUser" class="TransformUser"/> <bean id="userContainer" class="UserContainer"> <property name="user" value="liming,23"></property> </bean> <bean id="configBean" class="org.springframework.beans.factory.config.CustomEditorConfigurer"> <property name="customEditors"> <map> <entry key="User"> <!-- 属性类型 --> <bean class="TransformUser"/> <!--对应Address的编辑器 --> </entry> </map> </property> </bean> 将liming,23这种格式的转换成User类。
例子1:http://www.iteye.com/topic/24660
例子2:http://gundumw100.iteye.com/blog/574440
相关文章推荐
- Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器
- Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器
- spring中自定义属性编辑器CustomEditorConfigurer
- spring的自定义属性编辑器CustomEditorConfigurer
- spring中自定义属性编辑器CustomEditorConfigurer
- 属性编辑器PropertyEditorSupport在spring中的应用
- spring学习教程8-自定义属性编辑器PropertyEditor 和自定义事件
- spring中自定义属性编辑器CustomEditorConfigurer
- spring中自定义属性编辑器CustomEditorConfigurer
- spring属性编辑器(PropertyEditorSupport)
- spring中自定义属性编辑器CustomEditorConfigurer
- spring中自定义属性编辑器CustomEditorConfigurer
- spring中自定义属性编辑器CustomEditorConfigurer
- spring中自定义属性编辑器CustomEditorConfigurer
- spring中自定义属性编辑器CustomEditorConfigurer
- Spring IOC 自定义属性编辑器PropertyEditor
- Spring自定义属性编辑器CustomEfitorConfigurer使用实例
- (spring-第13回【IoC基础篇】)PropertyEditor(属性编辑器)--实例化Bean的第五大利器
- Unity3D 使用 Editor 脚本,自定义 脚本的属性面板
- Spring中属性编辑器的使用