Spring常用的接口和类(三)

一、CustomEditorConfigurer类

     CustomEditorConfigurer可以读取实现java.beans.PropertyEditor接口的类,将字符串转为指定的类型。更方便的可以使用PropertyEditorSupport。PropertyEditorSupport实现PropertyEditor接口,必须重新定义setAsText。

public class Hello {
    private String message;
    private User user;
    
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
}

    自定义属性编辑器继承PropertyEditorSupport类,重写setAsText方法。

public class UserEditor extends PropertyEditorSupport{
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
        //类型为User的变量声明了自定义属性编辑器,其值规定为逗号分割的字符串
        String[] arr = text.split(",");
        Integer age = new Integer(arr[1]);
        
        User user = new User();
        user.setName(arr[0]);
        user.setAge(age);
        
        setValue(user);
    }
}

    bean配置

<bean id="configBean" 
class="org.springframework.beans.factory.config.CustomEditorConfigurer"> 
    <property name="customEditors">
        <map>
            <!-- 类型为User的变量都通过UserEditor间接设值 -->
            <entry key="User">
                <bean id="userEditor" class="UserEditor"/>
            </entry>
        </map>   
    </property>
</bean> 

<bean id="hello" class="Hello"> 
    <property name="message" value="hello" /> 
    <property name="user" value="chenjumin,20"/><!-- 类型为User的变量声明了自定义属性编辑器,其值规定为逗号分割的字符串 --> 
</bean>
原文地址:https://www.cnblogs.com/damowang/p/4305166.html