欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Bean復(fù)制的幾種方法介紹

這篇文章主要講解了“Bean復(fù)制的幾種方法介紹”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Bean復(fù)制的幾種方法介紹”吧!

成都創(chuàng)新互聯(lián)公司長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鼓樓企業(yè)提供專業(yè)的網(wǎng)站制作、做網(wǎng)站,鼓樓網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

4 種復(fù)制方法:

  • Apache BeanUtils

  • Apache PropertyUtils

  • Spring BeanUtils

  • Cglib BeanCopier

測試 Bean,F(xiàn)romBean 與 ToBean 屬性一致

public class FromBean {
    private String name;
    private int age;
    private double money;
 
    public double getMoney() {
        return money;
    }
    public void setMoney(double money) {
        this.money = money;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

測試方法

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils;
import org.springframework.cglib.beans.BeanCopier;

public class Test {

	public static void main(String[] args) {
		FromBean fb = new FromBean();
		fb.setAge(20);
		fb.setMoney(30000.111);
		fb.setName("測試");

		int count = 10;

		convert((tb) -> BeanUtils.copyProperties(tb, fb), count, "Apache BeanUtils.copyProperties");

		convert((tb) -> PropertyUtils.copyProperties(tb, fb), count, "Apache PropertyUtils.copyProperties");

		convert((tb) -> org.springframework.beans.BeanUtils.copyProperties(fb, tb), count, "Spring BeanUtils.copyProperties");

		BeanCopier bc = BeanCopier.create(FromBean.class, ToBean.class, false);

		convert((tb) -> bc.copy(fb, tb, null), count, "Cglib BeanCopier.copy");

	}

	public static void convert(ConvertBean cb, int count, String type) {
		try {
			System.out.println(type + "開始進(jìn)行測試");
			long start = System.currentTimeMillis();
			for (int i = 0; i < count; i++) {
				ToBean tobean = new ToBean();
				cb.convertMethod(tobean);
				System.out.println(tobean.getAge());
				System.out.println(tobean.getMoney());
				System.out.println(tobean.getName());
			}
			System.out.println("耗時(shí) " + (System.currentTimeMillis() - start) + " ms");
			System.out.println("----------------------");
		} catch (Exception e) {
			System.out.println("Exception: " + e.getMessage());
			e.printStackTrace();
		}
	}
}

@FunctionalInterface
interface ConvertBean {

	void convertMethod(ToBean tb) throws Exception;
}

打印結(jié)果

Apache BeanUtils.copyProperties開始進(jìn)行測試
耗時(shí) 1178 ms
----------------------
Apache PropertyUtils.copyProperties開始進(jìn)行測試
耗時(shí) 5 ms
----------------------
Spring BeanUtils.copyProperties開始進(jìn)行測試
耗時(shí) 172 ms
----------------------
Cglib BeanCopier.copy開始進(jìn)行測試
耗時(shí) 0 ms
----------------------

測試結(jié)果

單位:ms

count:10

次數(shù):10第一次第二次第三次第四次平均值單次平均值
Apache BeanUtils1178102991710191035.75103.575
Apache PropertyUtils54845.250.525
Spring BeanUtils172257123135171.7517.175
Cglib BeanCopier000000

count:100

次數(shù):100第一次第二次第三次第四次平均值單次平均值
Apache BeanUtils18681258162412601502.515.025
Apache PropertyUtils1610181715.250.1525
Spring BeanUtils193152209215192.251.9225
Cglib BeanCopier000000

count:10000

次數(shù):10000第一次第二次第三次第四次平均值單次平均值
Apache BeanUtils16111657178615721656.50.16565
Apache PropertyUtils243641941111530.0153
Spring BeanUtils5512174334314080.0408
Cglib BeanCopier106376.50.00065

結(jié)論

  • 數(shù)量越大平均每次耗時(shí)越少

  • 綜合 Cglib BeanCopier 性能最好,但在使用前,要先用 BeanCopier.create 定義

Cglib在測試的時(shí)候,先進(jìn)行了實(shí)例的緩存,這個(gè)也是他性能較好的原因

Spring BeanUtils 不能轉(zhuǎn)化 java.util.Date,可以支持它的子類 java.sql.Date

感謝各位的閱讀,以上就是“Bean復(fù)制的幾種方法介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Bean復(fù)制的幾種方法介紹這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

分享題目:Bean復(fù)制的幾種方法介紹
URL分享:http://aaarwkj.com/article24/ihpdce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、云服務(wù)器商城網(wǎng)站、全網(wǎng)營銷推廣外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(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ù)器托管
天堂av在线网址观看| 中文字幕日韩欧美资源站| 国产一区二区黄色在线| 偷拍视频在线一区二区| 亚洲精品欧美日韩久久| 国产又粗又长又大又长| 国产av人妻精品一区二| 丝袜美腿亚洲综合第一区| 亚洲精品偷拍在线观看| av电影国产在线观看| 精品国产a级黄毛网站| 裸体性做爰免费视频网站| 九九精品在线观看视频| 精品人妻一区三区蜜桃| 欧美日韩国产综合一区二区| 国产日韩欧美精品激情| 久久精品亚洲av三区麻豆| 伊人激情久久综合中文字幕| 国产熟女系列一区二区三区| 亚州精品乱码久久电影| 日本岛国大片一区二区在线观看| 狠狠久久五月综合色和啪| 神马免费午夜福利剧场| 欧美日韩高清一区二区三区| 日本不卡在线观看欧美精品| 亚洲一区日本一区二区| 亚洲天堂男人的天堂狠狠操| 全国精品免费视频久久久| 一区二区三区视频观看在线| 国产免费观看久久黄av片涩av| 日韩无遮挡免费在线观看| 国产姐弟操大率悠荡笕| 国产亚洲精品热视频在线观看 | 少妇高潮毛片免费看高潮| 蜜桃国产精品视频网站| 国产成人91精品免费看片| 亚洲字幕中文在线乱码mv| 日本视频免费一区二区| 精品国产乱码一区二区三区四区| 日韩久久精品五月综合| 国产男女猛进猛出精品91|