PropertyEditor接口

java.beans.PropertyEditor

PropertyEditor實現(xiàn)的是雙向類型轉(zhuǎn)換:String和Object互轉(zhuǎn)爽室。調(diào)用setValue()方法后捶朵,需要先“緩存”起來后續(xù)才能夠使用(輸出)

java doc中重要的一句話:
PropertyEditor 類為希望允許用戶編輯給定類型的屬性值的 GUI 提供支持。
PropertyEditor 支持各種不同的顯示和更新屬性值的方式美浦。大多數(shù) PropertyEditor 只需要支持此 API 中可用的不同選項的子集甫男。

JDK對PropertyEditor接口提供了一個默認實現(xiàn)java.beans.PropertyEditorSupport攘已,因此我們?nèi)粜钄U展此接口,僅需繼承此類澜共,根據(jù)需要復(fù)寫getAsText/setAsText這兩個方法即可向叉,Spring無一例外都是這么做的。

PropertyEditor作為一個JDK原生接口嗦董,內(nèi)置了一些基本實現(xiàn)來服務(wù)于GUI程序母谎,如:

BooleanEditor:將true/false字符串轉(zhuǎn)換為Boolean類型
IntegerEditor:將字符串轉(zhuǎn)換為Integer類型
同類別的還有LongEditor、FloatEditor...
JDK內(nèi)置的實現(xiàn)比較少(如上)京革,功能簡陋奇唤,但對于服務(wù)GUI程序來說已經(jīng)夠用,畢竟界面輸入的只可能是字符串匹摇,并且還均是基礎(chǔ)類型咬扇。但這對于復(fù)雜的Spring環(huán)境、以及富文本的web環(huán)境來說就不夠用了廊勃,所以Spring在此基礎(chǔ)上有所擴展懈贺,因此才有了本文來討論。
這么一來PropertyEditorSupport就是有狀態(tài)的了坡垫,因此是線程不安全的梭灿。在使用過程中需要特別注意,避免出現(xiàn)并發(fā)風險冰悠。

官方的javadoc都說得很清楚:PropertyEditor設(shè)計是為GUI程序服務(wù)的堡妒,那么Spring為何看上它了呢?

試想一下:那會的Spring只能支持xml方式配置溉卓,而XML屬于文本類型配置皮迟,因此在給某個屬性設(shè)定值的時候搬泥,書寫上去的100%是個字符串,但是此屬性對應(yīng)的類型卻不一定是字符串万栅,可能是任意類型佑钾。你思考下西疤,這種場景是不是跟GUI程序(AWT)一毛一樣:輸入字符串烦粒,對應(yīng)任意類型。

基于PropertyEditor的類型轉(zhuǎn)換作為一種古老的代赁、遺留下來的方式扰她,是具有一些設(shè)計缺陷的,如:職責不單一芭碍,類型不安全徒役,只能實現(xiàn)String類型的轉(zhuǎn)換等。雖然自Spring 3.0起提供了現(xiàn)代化的類型轉(zhuǎn)換接口窖壕,但是此部分機制一直得以「保留」忧勿,保證了向下兼容性。

新一代類型轉(zhuǎn)換接口Converter瞻讽、GenericConverter

其中一部分搬運自:https://mp.weixin.qq.com/s/Afu8YYyREoynAXS6YrJe7g

建議閱讀:
https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/5daOOdhIFqrGbpgtnuQMNw
https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/Afu8YYyREoynAXS6YrJe7g
https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/--UO3pH1nxTW3f5nQvEnkg

有關(guān)PropertyEditorRegistrar接口鸳吸,spring提供的用于自定義PropertyEditor的接口,建議閱讀:
https://blog.csdn.net/qq_43414291/article/details/111226055

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末速勇,一起剝皮案震驚了整個濱河市晌砾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烦磁,老刑警劉巖养匈,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異都伪,居然都是意外死亡呕乎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門陨晶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猬仁,“玉大人,你說我怎么就攤上這事珍逸≈鹦椋” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵谆膳,是天一觀的道長叭爱。 經(jīng)常有香客問我,道長漱病,這世上最難降的妖魔是什么买雾? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任把曼,我火速辦了婚禮,結(jié)果婚禮上漓穿,老公的妹妹穿的比我還像新娘嗤军。我一直安慰自己,他們只是感情好晃危,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布叙赚。 她就那樣靜靜地躺著,像睡著了一般僚饭。 火紅的嫁衣襯著肌膚如雪震叮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天鳍鸵,我揣著相機與錄音苇瓣,去河邊找鬼。 笑死偿乖,一個胖子當著我的面吹牛击罪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贪薪,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼媳禁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了古掏?” 一聲冷哼從身側(cè)響起损话,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎槽唾,沒想到半個月后丧枪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡庞萍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年拧烦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钝计。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡恋博,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出私恬,到底是詐尸還是另有隱情债沮,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布本鸣,位于F島的核電站疫衩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏荣德。R本人自食惡果不足惜闷煤,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一童芹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鲤拿,春花似錦假褪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至幕庐,卻和暖如春久锥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背异剥。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留絮重,地道東北人冤寿。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像青伤,于是被迫代替她去往敵國和親督怜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容