在許多專案中都會設計實體物件的轉換拷貝,如果字段比較多使用set和get會使**顯得比較臃腫,然而大部分工具模擬如:
beanutils.copyproperties(user, uform) 等使用反射原理會大大的影響效能。mapstruct就很好的解決了效能問題,它的原理就是自動幫我們封裝get,set方法。
jdt_apt
引用它之後在編譯時就會自動生成實現類了!!
然後新增pom依賴
org.mapstruct
mapstruct-jdk8
1.1.0.final
org.mapstruct
mapstruct-processor
1.1.0.final
provided
建立do以及vo物件package com.xzs.mapstructdemo;
/** * do物件
* @description:todo
* @exception:
* @author: 徐正順
* @time:2023年10月27日 下午5:32:27
*/public class objfrom
public void setname(string name)
public string getename()
public void setename(string ename)
public string getemail()
public void setemail(string email)
public int getage()
public void setage(int age)
}
package com.xzs.mapstructdemo;
/** * vo 物件
* @description:todo
* @exception:
* @author: 徐正順
* @time:2023年10月27日 下午5:33:44
*/public class objto
public void setmyname(string myname)
public string getmyemail()
public void setmyemail(string myemail)
public int getage()
public void setage(int age)
@override
public string tostring()
}
package com.xzs.mapstructdemo;
/** * @description:todo
* @exception:
* @author: 徐正順
* @time:2023年10月27日 下午5:34:55
*/
/*** objfrom 自動轉換為 objto
* @description:todo
* @param from
* @return
* objto
* @exception:
* @author: 徐正順
* @time:2023年10月27日 下午3:29:44
* * source = "ename" objfrom的ename屬性值copy到objto的myname值 target = "myname"
*/objto cartocardto(objfrom from);
}
/** 測試方法
* mapstruct 物件屬性值copy
* @description:todo
* void
* @exception:
* @author: 徐正順
* @time:2023年10月27日 下午3:38:46
*/@test
public void contextloads()
C 類,物件,屬性,屬性值,方法
閒話少說,直入主題。類 是個抽象的概念,是個模子,確定物件會擁有的特徵 屬性 和行為 方法 是具有相同特徵的一組物件的抽象,類不佔記憶體。物件 看的見,摸得著,特指的,具體的,物件是類的乙個例項,物件佔記憶體。屬性 理解為一種特徵 屬性值 描述這個特徵的值。方法 物件的行為。舉例 區分類和物件 in...
js物件中取屬性值物件 屬性和物件 屬性 的區別
物件的屬性和方法統稱為物件的成員。首先,我們知道 js物件中取屬性值 和 的區別 一般作為靜態物件使用時來訪問屬性。而 表示法在動態訪問屬性時就非常有用。如 var object var name1 object.name var name2 object name 區別 相同點 都可以獲取到obj...
獲取物件屬性值 NPOI EXPORT
使用dll npoi.dll 獲取屬性,設定屬性 參考 額外的 匯出的時候碰到乙個問題,鏈結沒有響應 function export 看了一下控制台,報的錯是未定義名字,就是說export jquery有自定義的方法名或缺省的名字,所以把export名字改了就可以了 using npoi.hssf....