日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器...

發布時間:2025/7/25 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、通過繼承JDK 中的 java.beans.PropertyEditorSupport?類來實現自己的編輯器類?,該類用于實現將String 類型轉換成您需要的數據類型。然后我們只需要在Spring 的容器中對這個編輯器進行有效的“注冊”便可以實現Spring 在裝配Bean 時自動的將String 類型轉換成我們自定義的類型。


如何編輯自己的PropertyEditor,其實需要了解一點java.beans包的知識,在該包中,有一個 java.beans.PropertyEditor的接口,它定義了一套接口方法(12個),即通過這些方法如何將一個String變成內部的一個對 象,這兩個方法是比較重要的:?
???? a)setValue(Object value) 直接設置一個對象
???? b)setAsText(String text) 通過一個字符串來構造對象,一般在此方法中解析字符串,將構造一個類對象,調用setValue(Object)來完成屬性對象設置操作。?
??
? 2)實現所有的接口方法是麻煩的,java.beans.PropertyEditorSupport 適時登場,一般情況下,我們通過擴展這個方便類即可。


2、CustomEditorConfigurer 類?用于實現在Spring 中注冊自己定義的編輯器?。它是Spring 當中一個非常有用的工廠后處理類(工廠后處理通過Spring 的BeanFactoryPostProcessor 接口實現, 它是在Spring 容器啟動并初始化之后進行對Spring 容器的操作類)。在Spring 中已經注冊了不少編輯器類,他們都用于String 類型轉換為其他的數據類型,如URL,Date等。


配置CustomEditorConfigurer 類:

????? CustomEditorConfigurer 類中有一個customEditor屬性,它是一個Map 類型。通過配置它便實現了自定義的編輯器注冊。這個Map 的鍵值對對應著轉換類型和編輯器(轉換類型是Key,編輯器是Value)。


自定義編輯器可以簡化Spring 的裝配Bean。使其更加的簡單。不容易發生配置錯誤。 PS:如果使用Spring 的ApplicationContext容器,那么只需在Spring 的配置文件中進行簡單的裝配,而對于Bean 工廠可能需要手動的注冊才能使用。

?

Java代碼??
  • //User.java??
  • ??
  • public?class?User?{??
  • ???private?String?name;??
  • ???private?int?age;??
  • ???。。。??
  • }??
  • ? Java代碼??
  • //用到User的類:UserContainer.java??
  • ??
  • public?class?UserContainer?{??
  • ??
  • private?User?user;??
  • ??
  • public?void?setUser(User?user)?{??
  • ???this.user?=?user;??
  • }??
  • ??
  • public?void?printUser()?{??
  • ???System.out.println(user.getName()?+?"?"?+?user.getAge());??
  • }??
  • }??
  • ? Java代碼??
  • //將配置中的轉換的類:TransformUser.java??
  • ??
  • public?class?TransformUser?extends?PropertyEditorSupport?{??
  • ??
  • ?public?void?setAsText(String?text)?{??
  • ????String[]?data?=?text.split(",");??
  • ????User?user?=?new?User();??
  • ????user.setName(data[0]);??
  • ????user.setAge(Integer.parseInt(data[1]));??
  • ????this.setValue(user);??
  • ??}??
  • }??
  • ? Java代碼??
  • 在applicationContext.xml文件中。??
  • ??
  • <bean?id="user"?class="User"?/>??
  • <bean?id="transformUser"?class="TransformUser"/>??
  • ??
  • <bean?id="userContainer"?class="UserContainer">??
  • ?????<property?name="user"?value="liming,23"></property>??
  • </bean>??
  • ??
  • <bean?id="configBean"???class="org.springframework.beans.factory.config.CustomEditorConfigurer">??
  • ???<property?name="customEditors">??
  • ????<map>??
  • ???????<entry?key="User">??<!--?屬性類型?-->????
  • ?????????????<bean?class="TransformUser"/>??<!--對應Address的編輯器?-->????
  • ???????</entry>??
  • ????</map>??
  • ???</property>??
  • </bean>??
  • ??
  • 將liming,23這種格式的轉換成User類。??
  • 例子1:http://www.iteye.com/topic/24660

    例子2:http://gundumw100.iteye.com/blog/574440

    轉載于:https://www.cnblogs.com/chenying99/archive/2012/05/16/2505397.html

    總結

    以上是生活随笔為你收集整理的Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。