摘要:項目簡介用于對象屬性賦值。示例代碼對象的定義其中對象和對象的屬性是相同的。名稱年齡生日字符串列表屬性賦值測試案例我們構建的屬性,然后調用類似于和,并驗證結果符合我們的預期。
項目簡介
Bean-Mapping 用于 java 對象屬性賦值。
項目中經常需要將一個對象的屬性,賦值到另一個對象中。
常見的工具有很多,但都多少不夠簡潔,要么不夠強大。
特性支持對象屬性的淺拷貝
變更日志變更日志快速開始 準備
JDK1.8 及其以上版本
Maven 3.X 及其以上版本
maven 項目依賴核心類說明 BeanUtilcom.github.houbb bean-mapping-core 0.0.1
提供一個簡單的靜態方法 copyProperties。
/** * 復制屬性 * 將 source 中的賦值給 target 中名稱相同,且可以賦值的類型中去。類似于 spring 的 BeanUtils。 * @param source 原始對象 * @param target 目標對象 */ public static void copyProperties(final Object source, Object target)測試代碼參考
詳情參見 bean-mapping-test 模塊下的測試代碼。
示例代碼 對象的定義BaseSource.java & BaseTarget.java
其中 BaseSource 對象和 BaseTarget 對象的屬性是相同的。
public class BaseSource { /** * 名稱 */ private String name; /** * 年齡 */ private int age; /** * 生日 */ private Date birthday; /** * 字符串列表 */ private List屬性賦值測試案例stringList; //getter & setter }
我們構建 BaseSource 的屬性,然后調用
BeanUtil.copyProperties(baseSource, baseTarget);
類似于 spring BeanUtils 和 Apache BeanUtils,并驗證結果符合我們的預期。
/** * 基礎測試 */ @Test public void baseTest() { BaseSource baseSource = buildBaseSource(); BaseTarget baseTarget = new BaseTarget(); BeanUtil.copyProperties(baseSource, baseTarget); // 斷言賦值后的屬性和原來相同 Assertions.assertEquals(baseSource.getAge(), baseTarget.getAge()); Assertions.assertEquals(baseSource.getName(), baseTarget.getName()); Assertions.assertEquals(baseSource.getBirthday(), baseTarget.getBirthday()); Assertions.assertEquals(baseSource.getStringList(), baseTarget.getStringList()); } /** * 構建用戶信息 * @return 用戶 */ private BaseSource buildBaseSource() { BaseSource baseSource = new BaseSource(); baseSource.setAge(10); baseSource.setName("映射測試"); baseSource.setBirthday(new Date()); baseSource.setStringList(Arrays.asList("1", "2")); return baseSource; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73387.html
摘要:簡單來說,是一個輕量級的控制反轉和面向切面的容器框架。變成的支持提供面向切面編程,可以方便的實現對程序進行權限攔截,運行監控等功能。用于反射創建對象,默認情況下調用無參構造函數。指定對象的作用范圍。 1.Spring介紹 1.1 Spring概述 Spring是一個開源框架,Spring是于2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert...
摘要:使用的好處知乎的回答不用自己組裝,拿來就用。統一配置,便于修改。 前言 只有光頭才能變強 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 單例模式你會幾種寫法? 工廠模式理解了沒有? 在刷Spring書籍的時候花了點時間去學習了單例模式和工廠模式,總的來說還是非常值得的! 本來想的是刷完《Spring 實戰 (第4版)》和《精通Spring4.x 企業應用開發實戰》...
摘要:入門篇學習總結時間年月日星期三說明本文部分內容均來自慕課網。主要的功能是日志記錄,性能統計,安全控制,事務處理,異常處理等等。 《Spring入門篇》學習總結 時間:2017年1月18日星期三說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:https://github.com/zccodere/s...個人學習源碼:https://git...
摘要:只有同時生效時,才會發生賦值。具體的生效實現類型轉換默認不進行轉換為了確保轉換的確定性靈活性。對象中指定這個屬性,不會改變對象的屬性值和類型。 BeanMapping 為了更加靈活的指定映射方式,0.0.2 版本引入了 @BeanMapping 注解。 注解的定義 注解定義在 bean-mapping-api 模塊中,bean-mapping-core 會默認引入此模塊。 packag...
摘要:表達式語言依賴關系提供對變量插值的支持,允許在違規消息中使用表達式。這是當相應屬性的值未通過驗證時通常會呈現的消息。任何違反對象中定義的約束的行為都將作為返回。案例結論本文重點介紹了標準的簡單傳遞,并使用注釋和說明了驗證的基礎知識。 案例概述 在這本文中,我們將介紹使用標準框架驗證Java bean的基礎知識 - JSR 380,也稱為Bean Validation 2.0。 當然,驗...
閱讀 3062·2021-10-12 10:12
閱讀 1569·2021-09-09 11:39
閱讀 1845·2019-08-30 15:44
閱讀 2339·2019-08-29 15:23
閱讀 2898·2019-08-29 15:18
閱讀 2960·2019-08-29 13:02
閱讀 2688·2019-08-26 18:36
閱讀 733·2019-08-26 12:08