java bean轉化的利器:mapping4java
mapping4java,bean轉化的利器,性能上快上beanutils 10倍,功能上比cglib豐富很多。國外類似的產品還有dozer(基于beanutils,性能還是一樣那么爛)。
Why need mapping
這里列覺了幾種需要使用mapping的場景
- model 和 DO的轉化 (DO = Data Object , 數據庫對象的設計是一種大寬表的設計,domain/model的設計,會有層次結構&具體)。 比如表設計存儲會采用json存儲動態數據,而在model中會是具體的屬性
- model 和 VO的轉化 (VO = View Object , 公司的產品detail頁面,涉及了后端n多個domain/model的組合展示,這時候會進行包裝成VO,包裝一些頁面組裝邏輯)
- model 和 DTO的轉化 (DTO = Data Transfer Object ,公司子系統比較多,系統之間會有比較多的rpc等remote調用)
- form -> bean的轉化 (現在流行的幾個MVC框架,都已經開始支持view層的參數注入,比如@Paramter(name="field")String , @Form("name=xx")Bean)。 提交的form表單數據,基本都是以map+list為主,就會涉及一個mapping
Why BeanMapping
- 解決BeanUtils, BeanCopier使用上的局限,只能針對同名屬性的拷貝
- 相比于BeanUtils,性能提升是它的優勢
- 相比于BeanCopier,類型之間的convertor是它的優勢
- 支持插件方式的擴展,自身框架的設計也是基于插件擴展。
目前的插件支持:
- default value支持
- convetor轉換
- script腳本支持 (EL表達式處理)
- bean creator(嵌套對象自動創建)
性能測試圖表:
相關說明:
- 從圖中可以直觀的看出,BeanMapping的性能相比于beanUtils,PropertyUtils的提升比較明顯
- 詳細的性能測試結果可參見:http://code.google.com/p/mapping4java/wiki/Performance
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!