1. 程式人生 > >Spring整理3 -- 自定義屬性編輯器

Spring整理3 -- 自定義屬性編輯器

在我們注入屬性時,遇到是日期型別,如果按普通屬性去注入,則會報錯,那我們該怎麼解決?解決辦法:自定義屬性編輯器。

什麼是屬性編輯器,作用?

自定義屬性編輯器,spring配置檔案中的字串轉換成相應的物件進行注入spring已經有內建的屬性編輯器,我們可以根據需求自己定義屬性編輯器。

步驟:

1、定義一個屬性編輯器必須繼承java.beans.PropertyEditorSupport

2、在配置檔案配置上我們定義的屬性編輯器

下面我們來做一個java.util.Date屬性編輯器,程式碼如下:

定義一個屬性編輯器UtilDatePropertyEditor

/**

*java.util.Date

屬性編輯器

*/

publicclass UtilDatePropertyEditor extends PropertyEditorSupport {

private String format="yyyy-MM-dd";

@Override

publicvoid setAsText(String text)

throws IllegalArgumentException {

SimpleDateFormat sdf = new SimpleDateFormat(format);

try {

Date d = sdf.parse(text);

this.setValue(d);

} catch

(ParseException e) {

e.printStackTrace();

}

}

publicvoid setFormat(String format) {

this.format = format;

}

}

配置檔案applicationContext.xml

<!-- 定義屬性編輯器 -->

<bean id="customEditorConfigurer"

class="org.springframework.beans.factory.config.CustomEditorConfigurer">

<property name="customEditors"

>

<map>

<entry key="java.util.Date">

<bean class="spring.UtilDatePropertyEditor">

<property name="format" value="yyyy-MM-dd"/>

</bean>

</entry>

</map>

</property>

</bean>

以後我們就可以為java.util.Date進行注入,和普通屬性一樣使用,測試程式碼(略),