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>

 

你可能感兴趣的:(spring)