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,bean)