1. 继承PropertyEditorSupport
并重写相关方法
示例:
import java.beans.PropertyEditorSupport;
public class AddressTypeEditor1 extends PropertyEditorSupport {
/**
* 通过给定的字符串设置属性值, 如果字符串格式不正确, 可以抛出异常
*/
@Override
public void setAsText(String text) throws IllegalArgumentException {
setValue(new Address(text));
}
/**
* 设置或改变被编辑的对象
*/
@Override
public void setValue(Object value) {
super.setValue(value);
}
}
2. 注册自定义的属性编辑器
使用org.springframework.beans.factory.config.CustomEditorConfigurer
进行注册, 这是一个BeanFactoryPostProcessor
.
<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="com.xzz.chapter01.section16.test01.Address" value="com.xzz.chapter01.section16.test01.AddressTypeEditor1"></entry>
</map>
</property>
</bean>
其中:
key
为被转换的类的全限定类名.
value
为自定义的属性编辑器的全限定类名.
3. 使用
<bean id="person" class="com.xzz.chapter01.section16.test01.Person">
<property name="addr" value="深圳"></property>
</bean>
此时的value
会转换为其对应的对象.
网友评论