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 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進行注入,和普通屬性一樣使用,測試程式碼(略),