PropertyEditorSupport
来源:互联网 发布:linux 拷贝进度 编辑:程序博客网 时间:2024/05/16 04:35
Spring 在装配Bean 时可以使用字符串装配其他数据类型,如URL。也就是说Spring 会自动的将String 类型转换成URL类型进行Bean 的属性装配。这是通过JavaBean API 实现的(java.beans.PropertyEditor 接口)。 那么如何通过Spring 配置将String 类型转换成自定义的类型呢?
这首先需要写一个编辑器类,该类用于实现将String 类型转换成您需要的数据类型。这只需要继承JDK 中的 java.beans.PropertyEditorSupport 类来实现自己的编辑器类。然后我们只需要在Spring 的容器中对这个编辑器进行有效的“注册”便可以实现Spring 在装配Bean 时自动的将Strng 类型转换成我们自定义的类型。 这就是今天我要介绍的CustomEditorConfigurer 类用于实现在Spring 中注册自己定义的编辑器。它是Spring 当中一个非常有用的工厂后处理类(工厂后处理通过Spring 的BeanFactoryPostProcessor 接口实现, 它是在Spring 容器启动并初始化之后进行对Spring 容器的操作类)。在Spring 中已经注册了不少编辑器类,他们都用于String 类型转换为其他的数据类型,如URL,Date等。
在Spring框架中,提供了几个内置的属性编辑器,如FileEditor,ResourceEditor等。要想使用自定义属性编辑器,需要经过两个步骤。
一。定义一个自定义编辑器,可实现PropertyEditor接口或直接继承PropertyEditorSupport类。
- package com.dream.editor;
- import com.dream.model.photo.Photo;
- import com.dream.service.standard.PhotoService;
- import java.beans.PropertyEditorSupport;
- /**
- * Created by IntelliJ IDEA.
- * User: Zhong Gang
- * Date: 11-9-6
- * Time: 下午10:10
- */
- public class PhotoEditor extends PropertyEditorSupport {
- private PhotoService photoService;
- @Override
- public String getAsText() {
- Photo photo = (Photo) getValue();
- return photo.getGuid();
- }
- @Override
- public void setAsText(String text) throws IllegalArgumentException {
- Photo photo = photoService.loadPhotoByGuid(text);
- setValue(photo);
- }
- }
二。注册自定义编辑器
Spring提供了一个PropertyEditorRegistry接口和PropertyEditorRegistrySupport类来自定义一个注册器。其中PropertyEditorRegistrySupport是Spring提供的一个默认实现,里面注册了一些内置的编辑器。
可以在配置文件中注册自定义编辑器,也可以以编程的方式注册自定义编辑器。
- String location = "testApplicationContext.xml";
- Resource resource = new ClassPathResource(location);
- XmlBeanFactory beanFactory = new XmlBeanFactory(resource);
- beanFactory.registerCustomEditor(Photo.class, PhotoEditor.class);
- <bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
- <property name="customEditors">
- <map>
- <entry key="com.dream.model.photo.Photo">
- <ref bean="photoEditor"/>
- </entry>
- </map>
- </property>
- </bean>
- <bean id="photoEditor" class="com.dream.editor.PhotoEditor">
- <property name="photoService" ref="photoService"/>
- </bean>
- PropertyEditorSupport
- 关于PropertyEditorSupport
- SpringMVC PropertyEditorSupport
- Spring4 PropertyEditorSupport 、FactoryBean
- javabean之PropertyEditorSupport
- PropertyEditorSupport注入值实例
- spring属性编辑器(PropertyEditorSupport)
- Java PropertyEditorSupport实现对象属性编辑
- Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器
- 自定义类型转换器解决Spring配置文件注入类型错误的问题 PropertyEditorSupport
- 等差数列
- 【转】spring MVC 转向(重定向)
- 等比数列
- 简单php验证码类
- 大型机汇编(mainframe assembler/HLASM)之代码loop篇
- PropertyEditorSupport
- wince程序窗体 居中显示[C#]
- boost::ref
- 点量源动闪媒Flash全景展示系统(可提供源码),提供360度全景展示
- 头文件 卫哨
- Properly encrypting with AES with CommonCrypto
- 参数文件
- java synchronized详解
- css样式选择器