如何理解Spring自定義屬性編輯器,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
為新市等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及新市網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、新市網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
Spring 自定義屬性編輯器
Spring DI注入的時(shí)候可以把普通屬性注入進(jìn)來(lái),但是像Date類型的就無(wú)法被識(shí)別。這時(shí)可以通過(guò)Spring的屬性編輯器把配置文件中的字符串轉(zhuǎn)化成相應(yīng)的對(duì)象進(jìn)行注入。
Spring有自帶的屬性編輯器,我們也可以寫(xiě)自定義的屬性編輯器
自定義屬性編輯器:
繼承java.beans.PropertyEditorSupport類,重寫(xiě)其中的setAsText(String text)方法。
再把自定義的屬性編輯器注入到Spring中。
例子:
JavaBean類
Java代碼
package com.cos.entity; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; public class UserBean { private Date birthday; public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
自定義屬性編輯器
Java代碼
package com.cos.entity; import java.beans.PropertyEditorSupport; import java.text.ParseException; import java.text.SimpleDateFormat; //自己寫(xiě)一個(gè)自定義屬性編輯器來(lái)繼承屬性編輯器PropertyEditorSupport public class DatePropertyEditor extends PropertyEditorSupport { //時(shí)間的格式 String format; public String getFormat() { return format; } public void setFormat(String format) { this.format = format; } //需要重寫(xiě)屬性編輯器的setAsText()方法 @Override public void setAsText(String text) { try { SimpleDateFormat f = new SimpleDateFormat(format); //把轉(zhuǎn)換后的值傳進(jìn)去 this.setValue(f.parse(text)); } catch (ParseException ex) { ex.printStackTrace(); } } }
spring配置文件 applicationContext.xml :
Xml代碼
org.springframework.beans.factory.config.CustomEditorConfigurer類可以讀取PropertyEditorSupport類及子類,將字符串轉(zhuǎn)化為指定的類型。
PropertyEditorSupport類把要轉(zhuǎn)化的Date類型注入到customEditors Map中。
測(cè)試類:
Java代碼
package com.cos.entity; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { //通過(guò)spring配置文件返回Bean的工廠對(duì)象 BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); //Bean工廠通過(guò)Bean的id得到JavaBean UserBean ub = (UserBean) factory.getBean("userBean"); System.out.println(""+ub.getBirthday()); } }
關(guān)于如何理解Spring自定義屬性編輯器問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。