精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么阿里巴巴禁止使用Apache Beanutils進行屬性的Copy?

開發 開發工具
在日常開發中,我們經常需要給對象進行賦值,通常會調用其set/get方法,有些時候,如果我們要轉換的兩個對象之間屬性大致相同,會考慮使用屬性拷貝工具進行。

 在日常開發中,我們經常需要給對象進行賦值,通常會調用其set/get方法,有些時候,如果我們要轉換的兩個對象之間屬性大致相同,會考慮使用屬性拷貝工具進行。

[[335679]]

如我們經常在代碼中會對一個數據結構封裝成DO、SDO、DTO、VO等,而這些Bean中的大部分屬性都是一樣的,所以使用屬性拷貝類工具可以幫助我們節省大量的set和get操作。

市面上有很多類似的工具類,比較常用的有

1、Spring BeanUtils

2、Cglib BeanCopier

3、Apache BeanUtils

4、Apache PropertyUtils

5、Dozer

由于篇幅優先,關于這幾種工具類的用法及區別,還有到底是什么是淺拷貝和深拷貝不在本文的討論范圍內。本文主要聚焦于對比這幾個類庫的性能問題。

性能對比

No Data No BB,我們就來寫代碼來對比下這幾種框架的性能情況。代碼示例如下:首先定義一個PersonDO類:

  1. public class PersonDO { 
  2.  
  3.     private Integer id; 
  4.  
  5.     private String name
  6.  
  7.     private Integer age; 
  8.  
  9.     private Date birthday; 
  10.  
  11.     //省略setter/getter 
  12.  

再定義一個PersonDTO類:

  1. public class PersonDTO { 
  2.  
  3.     private String name
  4.  
  5.     private Integer age; 
  6.  
  7.     private Date birthday; 
  8.  

然后進行測試類的編寫:使用Spring BeanUtils進行屬性拷貝:

  1. private void mappingBySpringBeanUtils(PersonDO personDO, int times) { 
  2.  
  3.     StopWatch stopwatch = new StopWatch(); 
  4.  
  5.     stopwatch.start(); 
  6.  
  7.  
  8.     for (int i = 0; i < times; i++) { 
  9.  
  10.         PersonDTO personDTO = new PersonDTO(); 
  11.  
  12.         org.springframework.beans.BeanUtils.copyProperties(personDO, personDTO); 
  13.  
  14.     } 
  15.  
  16.     stopwatch.stop(); 
  17.  
  18.     System.out.println("mappingBySpringBeanUtils cost :" + stopwatch.getTotalTimeMillis()); 
  19.  

其中的StopWatch用于記錄代碼執行時間,方便進行對比。

使用Cglib BeanCopier進行屬性拷貝:

  1. private void mappingByCglibBeanCopier(PersonDO personDO, int times) { 
  2.  
  3.     StopWatch stopwatch = new StopWatch(); 
  4.  
  5.     stopwatch.start(); 
  6.  
  7.     for (int i = 0; i < times; i++) { 
  8.  
  9.         PersonDTO personDTO = new PersonDTO(); 
  10.  
  11.         BeanCopier copier = BeanCopier.create(PersonDO.class, PersonDTO.class, false); 
  12.  
  13.         copier.copy(personDO, personDTO, null); 
  14.  
  15.     } 
  16.  
  17.     stopwatch.stop(); 
  18.  
  19.     System.out.println("mappingByCglibBeanCopier cost :" + stopwatch.getTotalTimeMillis()); 
  20.  

使用Apache BeanUtils進行屬性拷貝:

  1. private void mappingByApacheBeanUtils(PersonDO personDO, int times) 
  2.  
  3.     throws InvocationTargetException, IllegalAccessException { 
  4.  
  5.     StopWatch stopwatch = new StopWatch(); 
  6.  
  7.     stopwatch.start(); 
  8.  
  9.     for (int i = 0; i < times; i++) { 
  10.  
  11.         PersonDTO personDTO = new PersonDTO(); 
  12.  
  13.         BeanUtils.copyProperties(personDTO, personDO); 
  14.  
  15.     } 
  16.  
  17.     stopwatch.stop(); 
  18.  
  19.     System.out.println("mappingByApacheBeanUtils cost :" + stopwatch.getTotalTimeMillis()); 
  20.  

使用Apache PropertyUtils進行屬性拷貝:

  1. private void mappingByApachePropertyUtils(PersonDO personDO, int times) 
  2.  
  3.     throws InvocationTargetException, IllegalAccessException, NoSuchMethodException { 
  4.  
  5.     StopWatch stopwatch = new StopWatch(); 
  6.  
  7.     stopwatch.start(); 
  8.  
  9.     for (int i = 0; i < times; i++) { 
  10.  
  11.         PersonDTO personDTO = new PersonDTO(); 
  12.  
  13.         PropertyUtils.copyProperties(personDTO, personDO); 
  14.  
  15.     } 
  16.  
  17.     stopwatch.stop(); 
  18.  
  19.     System.out.println("mappingByApachePropertyUtils cost :" + stopwatch.getTotalTimeMillis()); 
  20.  

然后執行以下代碼:

  1. public static void main(String[] args) 
  2.  
  3.     throws InvocationTargetException, IllegalAccessException, NoSuchMethodException { 
  4.  
  5.     PersonDO personDO = new PersonDO(); 
  6.  
  7.     personDO.setName("Hollis"); 
  8.  
  9.     personDO.setAge(26); 
  10.  
  11.     personDO.setBirthday(new Date()); 
  12.  
  13.     personDO.setId(1); 
  14.  
  15.  
  16.     MapperTest mapperTest = new MapperTest(); 
  17.  
  18.  
  19.     mapperTest.mappingBySpringBeanUtils(personDO, 100); 
  20.  
  21.     mapperTest.mappingBySpringBeanUtils(personDO, 1000); 
  22.  
  23.     mapperTest.mappingBySpringBeanUtils(personDO, 10000); 
  24.  
  25.     mapperTest.mappingBySpringBeanUtils(personDO, 100000); 
  26.  
  27.     mapperTest.mappingBySpringBeanUtils(personDO, 1000000); 
  28.  
  29.     mapperTest.mappingByCglibBeanCopier(personDO, 100); 
  30.  
  31.     mapperTest.mappingByCglibBeanCopier(personDO, 1000); 
  32.  
  33.     mapperTest.mappingByCglibBeanCopier(personDO, 10000); 
  34.  
  35.     mapperTest.mappingByCglibBeanCopier(personDO, 100000); 
  36.  
  37.     mapperTest.mappingByCglibBeanCopier(personDO, 1000000); 
  38.  
  39.     mapperTest.mappingByApachePropertyUtils(personDO, 100); 
  40.  
  41.     mapperTest.mappingByApachePropertyUtils(personDO, 1000); 
  42.  
  43.     mapperTest.mappingByApachePropertyUtils(personDO, 10000); 
  44.  
  45.     mapperTest.mappingByApachePropertyUtils(personDO, 100000); 
  46.  
  47.     mapperTest.mappingByApachePropertyUtils(personDO, 1000000); 
  48.  
  49.     mapperTest.mappingByApacheBeanUtils(personDO, 100); 
  50.  
  51.     mapperTest.mappingByApacheBeanUtils(personDO, 1000); 
  52.  
  53.     mapperTest.mappingByApacheBeanUtils(personDO, 10000); 
  54.  
  55.     mapperTest.mappingByApacheBeanUtils(personDO, 100000); 
  56.  
  57.     mapperTest.mappingByApacheBeanUtils(personDO, 1000000); 
  58.  

得到結果如下:

工具類 執行1000次耗時 執行10000次耗時 執行100000次耗時 執行1000000次耗時
Spring BeanUtils 5ms 10ms 45ms 169ms
Cglib BeanCopier 4ms 18ms 45ms 91ms
Apache PropertyUtils 60ms 265ms 1444ms 11492ms
Apache BeanUtils 138ms 816ms 4154ms 36938ms
Dozer 566ms 2254ms 11136ms 102965ms

畫了一張折線圖更方便大家進行對比

綜上,我們基本可以得出結論,在性能方面,Spring BeanUtils和Cglib BeanCopier表現比較不錯,而Apache PropertyUtils、Apache BeanUtils以及Dozer則表現的很不好。

所以,如果考慮性能情況的話,建議大家不要選擇Apache PropertyUtils、Apache BeanUtils以及Dozer等工具類。很多人會不理解,為什么大名鼎鼎的Apache開源出來的的類庫性能確不高呢?這不像是Apache的風格呀,這背后導致性能低下的原因又是什么呢?其實,是因為Apache BeanUtils力求做得完美, 在代碼中增加了非常多的校驗、兼容、日志打印等代碼,過度的包裝導致性能下降嚴重。

總結

本文通過對比幾種常見的屬性拷貝的類庫,分析得出了這些工具類的性能情況,最終也驗證了《阿里巴巴Java開發手冊》中提到的"Apache BeanUtils 效率低"的事實。

但是本文只是站在性能這一單一角度進行了對比,我們在選擇一個工具類的時候還會有其他方面的考慮,比如使用成本、理解難度、兼容性、可擴展性等,對于這種拷貝類工具類,我們還會考慮其功能是否完善等。

就像雖然Dozer性能比較差,但是他可以很好的和Spring結合,可以通過配置文件等進行屬性之間的映射等,也受到了很多開發者的喜愛。

 

本文用到的第三方類庫的maven依賴如下:

  1. <!--Apache PropertyUtils、Apache BeanUtils--> 
  2.  
  3. <dependency> 
  4.  
  5.     <groupId>commons-beanutils</groupId> 
  6.  
  7.     <artifactId>commons-beanutils</artifactId> 
  8.  
  9.     <version>1.9.4</version> 
  10.  
  11. </dependency> 
  12.  
  13.  
  14.  
  15. <dependency> 
  16.  
  17.     <groupId>commons-logging</groupId> 
  18.  
  19.     <artifactId>commons-logging</artifactId> 
  20.  
  21.     <version>1.1.2</version> 
  22.  
  23. </dependency> 
  24.  
  25.  
  26.  
  27. <!--Spring PropertyUtils--> 
  28.  
  29. <dependency> 
  30.  
  31.     <groupId>org.springframework</groupId> 
  32.  
  33.     <artifactId>org.springframework.beans</artifactId> 
  34.  
  35.     <version>3.1.1.RELEASE</version> 
  36.  
  37. </dependency> 
  38.  
  39.  
  40.  
  41. <!--cglib--> 
  42.  
  43. <dependency> 
  44.  
  45.     <groupId>cglib</groupId> 
  46.  
  47.     <artifactId>cglib-nodep</artifactId> 
  48.  
  49.     <version>2.2.2</version> 
  50.  
  51. </dependency> 
  52.  
  53.  
  54.  
  55. <!--dozer--> 
  56.  
  57. <dependency> 
  58.  
  59.     <groupId>net.sf.dozer</groupId> 
  60.  
  61.     <artifactId>dozer</artifactId> 
  62.  
  63.     <version>5.5.1</version> 
  64.  
  65. </dependency> 
  66.  
  67.  
  68.  
  69. <!--日志相關--> 
  70.  
  71. <dependency> 
  72.  
  73.     <groupId>org.slf4j</groupId> 
  74.  
  75.     <artifactId>slf4j-api</artifactId> 
  76.  
  77.     <version>1.7.7</version> 
  78.  
  79. </dependency> 
  80.  
  81.  
  82.  
  83. <dependency> 
  84.  
  85.     <groupId>org.slf4j</groupId> 
  86.  
  87.     <artifactId>jul-to-slf4j</artifactId> 
  88.  
  89.     <version>1.7.7</version> 
  90.  
  91. </dependency> 
  92.  
  93.  
  94.  
  95. <dependency> 
  96.  
  97.     <groupId>org.slf4j</groupId> 
  98.  
  99.     <artifactId>jcl-over-slf4j</artifactId> 
  100.  
  101.     <version>1.7.7</version> 
  102.  
  103. </dependency> 
  104.  
  105.  
  106.  
  107. <dependency> 
  108.  
  109.     <groupId>org.slf4j</groupId> 
  110.  
  111.     <artifactId>log4j-over-slf4j</artifactId> 
  112.  
  113.     <version>1.7.7</version> 
  114.  
  115. </dependency> 
  116.  
  117.  
  118.  
  119. <dependency> 
  120.  
  121.     <groupId>org.slf4j</groupId> 
  122.  
  123.     <artifactId>slf4j-jdk14</artifactId> 
  124.  
  125.     <version>1.7.7</version> 
  126.  
  127. </dependency> 

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2020-09-08 16:25:18

Apache BeancopyJava

2023-01-11 08:06:42

對象賦值項目開發

2018-10-16 15:34:17

阿里巴巴Apache Flin大數據

2020-09-22 11:40:53

BigDecimalequalsJava

2021-10-11 09:32:40

包裝類型屬性

2019-03-04 09:22:52

阿里巴巴foreach Java

2025-04-17 08:47:23

2025-07-14 00:00:00

2022-09-05 10:06:21

MySQL外循環內循環

2021-08-04 17:20:30

阿里巴巴AsyncJava

2013-08-22 09:26:38

去IOE王堅

2019-06-26 07:54:53

ArrayListsubList源碼

2019-09-04 11:02:54

繼承層次組合

2019-09-02 15:20:28

Java開發繼承

2016-09-21 20:28:55

阿里巴巴IOE

2022-08-30 16:38:30

阿里巴巴JavaLog4j

2020-09-14 09:47:56

Java開發類型

2019-02-27 09:00:13

阿里巴巴for循環Java

2019-01-29 10:30:32

阿里巴巴Java字符串

2021-09-07 17:22:43

阿里巴巴辭職高薪
點贊
收藏

51CTO技術棧公眾號

亚洲少妇中文在线| 一本久久精品一区二区| 国产精品久久久久久久天堂第1集| 久草视频免费在线播放| 欧美电影完整版在线观看| 日韩欧美高清在线视频| 9999在线观看| 人成免费电影一二三区在线观看| 久久99久久99小草精品免视看| 欧美精品18videosex性欧美| 人妻视频一区二区| 911精品国产| 欧美日韩一区二区欧美激情 | 91福利国产成人精品播放| 毛片av在线| 久久五月婷婷丁香社区| 91精品国产高清久久久久久91裸体| 国偷自拍第113页| 91精品一区二区三区综合| 日韩精品视频免费| av天堂一区二区| 亚洲综合伊人| 欧美视频中文字幕| 久久国产成人精品国产成人亚洲| 中文在线免费| 一区在线中文字幕| 日韩wuma| 久草视频视频在线播放| 99免费精品在线观看| 亚洲一区二区三区在线免费观看| 波多野结衣视频观看| 亚洲看片免费| 久久久久久国产三级电影| 99热这里只有精品4| 欧美精品一区二区三区中文字幕 | av小说在线观看| 97se亚洲| 日韩精品一区二区三区四区| 亚洲一区日韩精品| avav成人| 欧美色精品天天在线观看视频| 青青草原成人网| h片在线观看下载| 亚洲宅男天堂在线观看无病毒| 伊人久久大香线蕉av一区| 97视频在线观看网站| 国产三区在线成人av| 免费日韩av电影| 欧美日本韩国一区二区| 久久久一区二区三区捆绑**| 久久精品国产精品青草色艺| 五月婷婷综合久久| aaa亚洲精品一二三区| 国产精品一区二区不卡视频| 六月婷婷综合网| 成人毛片在线观看| 国内一区二区在线视频观看| 午夜成人免费影院| 91老司机福利 在线| 久久综合给合久久狠狠色| 天堂在线中文| 国产欧美精品一区二区色综合朱莉| 精品一区二区三区自拍图片区| 色哟哟中文字幕| 99久久99久久久精品齐齐| 久久久av水蜜桃| 免费国产在线观看| 国产精品入口麻豆原神| 黄瓜视频免费观看在线观看www| 老司机午夜在线| 亚洲最新视频在线观看| 国产午夜伦鲁鲁| 高清av一区| 91精品国产免费| 亚洲精品久久一区二区三区777| 精品三级av| 亚洲美腿欧美激情另类| 国产精品酒店视频| 欧美黄污视频| 91精品国产免费久久久久久| 无码人妻精品一区二区| 极品美女销魂一区二区三区免费| 99久久99久久| 欧美日韩影视| 亚洲欧美视频一区| 日韩免费一级视频| 国产伊人久久| 精品国产人成亚洲区| 国产全是老熟女太爽了| 99精品视频在线| 久久久久久综合网天天| 国语对白做受69按摩| 国产精品一区二区91| 久久综合婷婷综合| 国产网友自拍视频导航网站在线观看| 亚洲成人777| 三上悠亚在线一区| 日本一区福利在线| 久久亚洲一区二区三区四区五区高| 日产亚洲一区二区三区| 久久se这里有精品| 久久久久久久久久久久久久一区| 麻豆视频在线免费观看| 都市激情亚洲色图| 欧美xxxxxbbbbb| av亚洲免费| 高清欧美一区二区三区| 一级黄色a视频| 91蝌蚪porny九色| 成人手机在线播放| 欧洲成人一区| 精品在线小视频| 免费一级片视频| 激情深爱一区二区| 欧美日韩喷水| 国产拍在线视频| 日韩欧美中文字幕公布| 国产美女永久免费无遮挡| 日韩视频在线一区二区三区| 91亚洲午夜在线| 第一页在线观看| 欧美天堂在线观看| 国产 xxxx| 欧美日韩18| 91久久精品日日躁夜夜躁国产| 理论视频在线| 精品女厕一区二区三区| 精品久久久久久无码人妻| 外国成人免费视频| 国产精品视频公开费视频| 青青草手机在线| 五月综合激情网| 人妻av一区二区三区| 欧美一区综合| 亚洲精品免费在线视频| 麻豆传媒在线完整视频| 欧美视频中文字幕在线| 久久人人妻人人人人妻性色av| 亚洲第一偷拍| 91网站在线免费观看| 天堂а√在线资源在线| 欧美人与z0zoxxxx视频| 日本女人性生活视频| 日本大胆欧美人术艺术动态| 欧美一区观看| 午夜无码国产理论在线| 亚洲一二三在线| 黄色污污网站在线观看| 久久精品日产第一区二区三区高清版 | 欧美视频在线观看免费| 美女又爽又黄免费| 一本色道久久综合一区| 久久精品国产一区二区三区日韩| 亚洲精品动漫| 亚洲美女av在线| 日本丰满少妇做爰爽爽| 国产精品久久三| 在线播放黄色av| 欧美日本不卡| 精品国产乱码久久久久久久软件| 在线观看涩涩| 国产一区二区三区丝袜| 国产一区二区视频免费观看| 亚洲精品久久嫩草网站秘色| 一级黄色免费视频| 久久精品综合| 中文网丁香综合网| theporn国产在线精品| 91国产中文字幕| 国产免费a∨片在线观看不卡| 欧美日韩你懂的| 欧美另类视频在线观看| 91免费视频网| 污视频网站观看| 欧美精品黄色| 久久久水蜜桃| 二区三区精品| 68精品国产免费久久久久久婷婷| 黄色美女网站在线观看| 91麻豆精品国产无毒不卡在线观看 | 九色国产在线观看| 欧美理论电影在线| 奇米影视第四色777| 中文字幕成人网| 久久久久无码国产精品一区李宗瑞| 免费亚洲一区| 黄色www在线观看| 日韩mv欧美mv国产网站| 国产美女精品免费电影| 91在线三级| 日韩亚洲第一页| 天天色综合久久| 欧美日本在线播放| 91视频免费网址| 日韩美女视频一区二区| 中国黄色a级片| 国产精品一区二区无线| 国语对白做受xxxxx在线中国| 亚洲国产一区二区在线观看| 久久久久资源| a级日韩大片| 国产日韩欧美成人| 三级中文字幕在线观看| 精品国产拍在线观看| 色视频在线观看福利| 日韩视频在线观看一区二区| 波多野结衣在线电影| 亚洲成人免费电影| 婷婷在线精品视频| 国产精品三级av| 在线免费观看视频| 91在线播放网址| 不许穿内裤随时挨c调教h苏绵| 免费一级片91| 中文字幕无码精品亚洲35| 国产欧美日韩一区二区三区四区| 国产成人精品一区二区三区福利| 成人在线免费av| 国产精品9999| 性爽视频在线| 欧美精品久久久久久久免费观看| 黄色在线免费网站| 一区二区三区亚洲| 欧美孕妇性xxxⅹ精品hd| 精品久久国产字幕高潮| 国产色综合视频| 欧美日韩黄视频| 中文在线资源天堂| 一本大道久久a久久综合| 亚洲日本韩国在线| 亚洲福利视频导航| 精品无码久久久久久久| 一区二区三区国产| 久久久久久久久久久久久女过产乱| 国产精品女人毛片| 久草福利资源在线| 最新欧美精品一区二区三区| 日本免费网站视频| 国产精品青草久久| www.4hu95.com四虎| 中文在线免费一区三区高中清不卡| 亚洲激情视频小说| 久久久国产精品午夜一区ai换脸| 精品夜夜澡人妻无码av | 中国特黄一级片| 国产精品欧美久久久久无广告| 美国美女黄色片| 国产精品久久久久久久久快鸭 | 91精品一区二区| 国产95亚洲| 2019国产精品视频| 日韩一二三区在线观看| 高清视频一区二区三区| 国产suv精品一区| 久久狠狠久久综合桃花| 国产欧美日韩一区二区三区四区| 日韩av一级大片| 97精品国产| 99久热在线精品视频| 在线欧美不卡| 久草青青在线观看| 日本不卡的三区四区五区| 日本在线观看免费视频| 狠狠色丁香婷综合久久| 男男受被啪到高潮自述| 成人app下载| 国产精品20p| 亚洲情趣在线观看| 在线观看国产亚洲| 91国产视频在线观看| 91亚洲国产成人精品一区| 欧美大片免费久久精品三p| 日批视频在线播放| 一区二区三区天堂av| 超碰在线最新| 97在线视频精品| 国产91欧美| 成人做爰66片免费看网站| 五月国产精品| 中文字幕综合在线观看| 一本色道久久综合一区| 国产精品v日韩精品v在线观看| 国产精品白丝jk黑袜喷水| 一二三不卡视频| 亚洲视频一区在线| 天天干天天干天天| 欧美一卡二卡三卡| 欧美偷拍视频| 伦理中文字幕亚洲| 中文字幕色婷婷在线视频| 91精品在线一区| 偷拍视屏一区| 国产乱人伦精品一区二区三区| 老鸭窝91久久精品色噜噜导演| 亚洲天堂伊人网| 26uuu亚洲综合色欧美| 特一级黄色录像| 色婷婷综合久久| 亚洲老妇色熟女老太| 在线播放国产一区中文字幕剧情欧美| 欧美日韩经典丝袜| 国产欧美精品一区二区三区介绍| 日韩黄色网络| 日韩国产精品毛片| 日韩有码一区二区三区| 日本不卡视频一区| 日韩毛片在线免费观看| 国产一级片免费在线观看| 亚洲激情 国产| 在线观看av免费| 国产精品一区二区久久国产| 日韩影视高清在线观看| 国产黄色激情视频| 久久99九九99精品| 国产jjizz一区二区三区视频| 五月天亚洲精品| www.久久综合| 日韩中文字幕在线观看| 日韩一级二级| 蜜桃臀一区二区三区| 激情欧美国产欧美| 青青草原播放器| 综合久久给合久久狠狠狠97色 | а√在线中文网新版地址在线| 92国产精品视频| 久久中文字幕av一区二区不卡| 成年人视频在线免费| 久久麻豆一区二区| 天天做天天爱夜夜爽| 亚洲精品国产精品国自产在线 | 亚洲女同一区| 国产成人美女视频| 一色桃子久久精品亚洲| 国产精品久久婷婷| 久久精品99无色码中文字幕| jizz久久久久久| 夜夜春亚洲嫩草影视日日摸夜夜添夜 | 国产欧美精品一区aⅴ影院| 久草视频一区二区| 亚洲欧美在线一区| 成人自拍av| 日韩经典在线视频| 日韩av一二三| 三级黄色录像视频| 91精品国产一区二区人妖| 含羞草www国产在线视频| 91免费电影网站| 国产精品成人一区二区网站软件| 人妻巨大乳一二三区| 一区二区三区色| 色一情一乱一乱一区91av| 91av国产在线| 国产日韩欧美一区二区三区| 自拍偷拍 国产| 中文字幕亚洲精品在线观看| 国产免费福利视频| 欧美大学生性色视频| 加勒比色综合久久久久久久久 | 久久国产一级片| 亚洲国产精品国自产拍av秋霞| 免费v片在线观看| 日本精品一区二区三区高清 久久| 青娱乐精品视频在线| 老熟妻内射精品一区| 亚洲大胆人体在线| 黄色亚洲网站| 伊人色综合影院| 国产成人自拍网| 青青草成人av| 日韩在线视频网| 一区二区三区欧洲区| 成人一区二区免费视频| 久久久久久**毛片大全| 夜夜骚av一区二区三区| 欧美疯狂xxxx大交乱88av| 欧美日韩大片免费观看| 美女在线视频一区二区| 一区二区三区精品| 九九热视频在线观看| 亚洲va欧美va国产综合久久| 99日韩精品| 刘亦菲国产毛片bd| 亚洲成av人乱码色午夜| 你懂得影院夜精品a| 日本a级片在线播放| 久久品道一品道久久精品| 国产精品玖玖玖| 欧美性在线观看| 久久久久亚洲| 免费黄色在线视频| 日韩一级片在线播放| 成人在线爆射| 久久国产午夜精品理论片最新版本| 久久久精品国产99久久精品芒果| 国产女主播福利| 国产成人在线亚洲欧美| 精品69视频一区二区三区Q| 最新日韩免费视频| 日韩经典中文字幕| 日本高清久久|