通過一個簡單的例子來說明。
導入Spring所需的包:commons-logging.jar,spring.jar 。(日志包和Spring包)
包下載地址:
http://www.ziddu.com/download/3555993/Spring.rar.html
或者http://www.tkk7.com/Files/ducklyl/Spring.rar
(1)創建User 類
package com.editor;
public class User {
private String name;
private int number;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}
(2)創建HelloBean 類package com.editor;
public class HelloBean {
private String helloWord;
private User user;
public String getHelloWord() {
return helloWord;
}
public void setHelloWord(String helloWord) {
this.helloWord = helloWord;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
(3)創建UserEditor 類
package com.editor;
import java.beans.PropertyEditorSupport;
public class UserEditor extends PropertyEditorSupport{
public void setAsText(String text)
{
String[] strs=text.split(",");
int number=Integer.parseInt(strs[1]);
User user=new User();
user.setName(strs[0]);
user.setNumber(number);
setValue(user);
}
}
(4)在類路徑下創建property-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="EditorConfigBean"
class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors"><!--CustomEditorConfigurer類會加載"customEditors"屬性設定的map-->
<map>
<entry key="com.editor.User">
<bean id="userEditor" class="com.editor.UserEditor" />
</entry>
</map>
</property>
</bean>
<bean id="helloBean" class="com.editor.HelloBean">
<property name="helloWord">
<value>Hello!</value>
</property>
<property name="user">
<value>ducklyl,123456</value>
</property>
</bean>
</beans>
(5)創建測試類
package com.editor;
import org.springframework.context.*;
import org.springframework.context.support.*;
public class SpirngTest {
public static void main(String[] args)
{
//讀取配置文件
ApplicationContext context=new FileSystemXmlApplicationContext("property-config.xml");
//獲取id="helloBean"對象
HelloBean hello=(HelloBean)context.getBean("helloBean");
//調用helloBean對象getHelloWord()方法
System.out.println(hello.getHelloWord());
System.out.println("Name:"+hello.getUser().getName());
System.out.println("Number:"+hello.getUser().getNumber());
}
}
如果以上正確設置,運行結果為:
Hello!
Name:ducklyl
Number:123456