<!-- scatter -->
<bean id="scatter" class="scatter.Scatter">
<property name="driverClass" value="${jdbc.driverclass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!-- 内部 bean 装配 -->
<property name="homeAdd">
<bean class="scatter.Address">
<property name="province" value="guangdong"/>
<property name="city" value="guangzhou"/>
<property name="street" value="zhongkai"/>
</bean>
</property>
<!-- 【属性编辑器】 装配 -->
<property name="comAdd">
<value>shandong-jinan-dajie</value>
</property>
</bean>
<!-- 注册属性编辑器 -->
<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<!-- 对应类,寻找对应的属性编辑器 -->
<entry key="scatter.Address">
<bean class="editor.AddressEditor"/>
</entry>
</map>
</property>
</bean>
/**
* 自定义属性编辑器
*/
public class AddressEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
if(text != null && text.length() > 0){
String[] ss = text.split("-");
if(ss != null && ss.length >2){
Address a = new Address(ss[0], ss[1], ss[2]);
// 将转换后的地址对象设置给相应的属性上
setValue(a);
return;
}
}
setValue(null);
}
}