成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

JAVABean對象轉(zhuǎn)換工具-創(chuàng)新互聯(lián)

在開發(fā)中有些規(guī)范,比如DTO、DO、VO等等,之間,如果我們需要轉(zhuǎn)換,單純的我們要一個(gè)一個(gè)的 set 值,真是一項(xiàng)苦B的活,在我以前接觸的項(xiàng)目中發(fā)現(xiàn)很多代碼是使用get/set來進(jìn)行轉(zhuǎn)換的,大量的這種冗余代碼,看著頭都大??!

專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)涇源免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

BeanUtils

java bean對象的相關(guān)轉(zhuǎn)化,這里介紹兩個(gè) ,一個(gè)是大家都非常熟悉的 BeanUtils,還有一個(gè)就是平常在開發(fā)中經(jīng)常使用的 MapStruct。

MapStruct 和 BeanUtils 最常用的莫過于對象的的拷貝了 。 不過面對需要深拷貝的對象大家要注意了,這里并不推薦大家使用BeanUtils工具去實(shí)現(xiàn)

@Test
	public void test01() {

		SysUser sysUser = new SysUser();
		sysUser.setUserId(1L);
		sysUser.setUserName("張三");
		sysUser.setCreateTime(new Date());

		User user = new User();

		BeanUtils.copyProperties(sysUser,user);
	}
MapStruct

下面重點(diǎn)說一下 MapStruct 這個(gè)轉(zhuǎn)化,相對比的話BeanUtils 就是一個(gè)大老粗,只能同屬性映射,或者在屬性相同的情況下,允許被映射的對象屬性少。

但當(dāng)遇到被映射的屬性數(shù)據(jù)類型被修改或者被映射的字段名被修改,則會導(dǎo)致映射失敗。而 mapstruct 就是一個(gè)巧媳婦兒了。

她心思細(xì)膩,把我們可能會遇到的情況都給考慮到了(要是我也能找一個(gè)這樣的媳婦兒該多好,內(nèi)心笑出了豬聲)

首先啥都不想果斷導(dǎo)入Jar包
org.mapstructmapstruct-jdk81.2.0.Finalorg.mapstructmapstruct-processor1.2.0.Final
定義兩個(gè)相同字段的對象
public class SysUser {

    private Long userId;

    private String account;

    忽略get、set....
}


public class User {
	
	private Long userId;
	
	private String account;

    忽略get、set....
}

接下來定義一個(gè)接口,但是注意不需要實(shí)現(xiàn),他就呢能夠幫我們轉(zhuǎn)化很神奇的

//注意Mapper引入路徑是:import org.mapstruct.Mapper;

@Mapper
public interface BeanConvert {

	BeanConvert COPY_PROPERTIES = Mappers.getMapper(BeanConvert.class);
	
	User sysUserDtoToUser(SysUser sysUser);

}
最后一步:在代碼中調(diào)用,聰明的小伙伴看下面代碼,一下就明白了,就是這么簡單,搜易賊
@Test
	public void test01() {

		SysUser sysUser = new SysUser();
		sysUser.setUserId(1L);
		sysUser.setAccount("一個(gè)肥鲇魚");

		User user = BeanConvert.COPY_PROPERTIES.sysUserDtoToUser(sysUser);

		System.out.println(user); // User{userId=1, account='一個(gè)肥鲇魚'}
	}
兩個(gè)對象字段不相同的情況

完全兩個(gè)類字段相同的情況是很容易的,那么,更加令我們頭疼的?有多個(gè)字段名字不同但是有對應(yīng)關(guān)系應(yīng)該怎么搞呢?

小栗子
public class SysUser {

    private Long userId;

    private String account;

    忽略get、set....
}


public class User {

	private Long userId;

	private String userName;

    忽略get、set....
}

將SysUser中account字段的值,賦值到User中userName

@Mapper
public interface BeanConvert {

	BeanConvert COPY_PROPERTIES = Mappers.getMapper(BeanConvert.class);

	@Mapping(source = "account", target = "userName")
	User sysUserDtoToUser(SysUser sysUser);


    // 多字段情況

    // @Mappings({
	// 		@Mapping(source = "userName", target = "account"),
	// 		@Mapping(source = "userId", target = "id"),
	// 		@Mapping(source = "createTime", target = "time")
	// })
}

@Test
	public void test01() {

		SysUser sysUser = new SysUser();
		sysUser.setUserId(1L);
		sysUser.setAccount("一個(gè)肥鲇魚");

		User user = BeanConvert.COPY_PROPERTIES.sysUserDtoToUser(sysUser);

		System.out.println(user);// User{userId=1, userName='一個(gè)肥鲇魚'}
	}

搞定,是不是很絲滑~

但是這么簡單的兩個(gè)小例子可包含不了?MapStruct這么強(qiáng)大的功能,不管是日期格式化、還是表達(dá)式解析、還是深拷貝,都能一一搞定。
拋磚引玉!
剩下的就交給聰明的小伙伴了!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

新聞名稱:JAVABean對象轉(zhuǎn)換工具-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://jinyejixie.com/article48/dijghp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、全網(wǎng)營銷推廣、網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
永靖县| 微博| 中卫市| 乌恰县| 麦盖提县| 安顺市| 长武县| 美姑县| 惠安县| 桦南县| 连云港市| 九江市| 南皮县| 怀来县| 微博| 临沭县| 江山市| 绿春县| 漳浦县| 商南县| 中超| 永昌县| 甘南县| 泌阳县| 台东市| 漳州市| 涪陵区| 精河县| 塔城市| 军事| 遂平县| 芜湖县| 嘉兴市| 高青县| 寻乌县| 鹤壁市| 峡江县| 铜鼓县| 涿州市| 玛沁县| 兴仁县|