日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring IOC 容器源码分析 - 循环依赖的解决办法

發布時間:2025/3/21 javascript 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring IOC 容器源码分析 - 循环依赖的解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 簡介

本文,我們來看一下 Spring 是如何解決循環依賴問題的。在本篇文章中,我會首先向大家介紹一下什么是循環依賴。然后,進入源碼分析階段。為了更好的說明 Spring 解決循環依賴的辦法,我將會從獲取 bean 的方法getBean(String)開始,把整個調用過程梳理一遍。梳理完后,再來詳細分析源碼。通過這幾步的講解,希望讓大家能夠弄懂什么是循環依賴,以及如何解循環依賴。

循環依賴相關的源碼本身不是很復雜,不過這里要先介紹大量的前置知識。不然這些源碼看起來很簡單,但讀起來可能卻也不知所云。那下面我們先來了解一下什么是循環依賴。

?2. 背景知識

?2.1 什么是循環依賴

所謂的循環依賴是指,A 依賴 B,B 又依賴 A,它們之間形成了循環依賴。或者是 A 依賴 B,B 依賴 C,C 又依賴 A。它們之間的依賴關系如下:

這里以兩個類直接相互依賴為例,他們的實現代碼可能如下:

1 2 3 4 5 6 7 8 public class BeanB {private BeanA beanA;// 省略 getter/setter }public class BeanA {private BeanB beanB; }

配置信息如下:

1 2 3 4 5 6 <bean id="beanA" class="xyz.coolblog.BeanA"><property name="beanB" ref="beanB"/> </bean> <bean id="beanB" class="xyz.coolblog.BeanB"><property name="beanA" ref="beanA"/> </bean>

IOC 容器在讀到上面的配置時,會按照順序,先去實例化 beanA。然后發現 beanA 依賴于 beanB,接在又去實例化 beanB。實例化 beanB 時,發現 beanB 又依賴于 beanA。如果容器不處理循環依賴的話,容器會無限執行上面的流程,直到內存溢出,程序崩潰。當然,Spring 是不會讓這種情況發生的。在容器再次發現 beanB 依賴于 beanA 時,容器會獲取 beanA 對象的一個早期的引用(early reference),并把這個早期引用注入到 beanB 中,讓 beanB 先完成實例化。beanB 完成實例化,beanA 就可以獲取到 beanB 的引用,beanA 隨之完成實例化。這里大家可能不知道“早期引用”是什么意思,這里先別著急,我會在下一章進行說明。

好了,本章先到這里,我們繼續往下看。

?2.2 一些緩存的介紹

在進行源碼分析前,我們先來看一組緩存的定義。如下:

1 2 3 4 5 6 7 8 /** Cache of singleton objects: bean name --> bean instance */ private final Map<String, Object> singletonObjects = new ConcurrentHashMap<String, Object>(256);/** Cache of singleton factories: bean name --> ObjectFactory */ private final Map<String, ObjectFactory<?>> singletonFactories = new HashMap<String, ObjectFactory<?>>(16);/** Cache of early singleton objects: bean name --> bean instance */ private final Map<String, Object> earlySingletonObjects = new HashMap<String, Object>(16);

根據緩存變量上面的注釋,大家應該能大致了解他們的用途。我這里簡單說明一下吧:

緩存用途
singletonObjects用于存放完全初始化好的 bean,從該緩存中取出的 bean 可以直接使用
earlySingletonObjects存放原始的 bean 對象(尚未填充屬性),用于解決循環依賴
singletonFactories存放 bean 工廠對象,用于解決循環依賴

上一章提到了”早期引用“,所謂的”早期引用“是指向原始對象的引用。所謂的原始對象是指剛創建好的對象,但還未填充屬性。這樣講大家不知道大家聽明白了沒,不過沒聽明白也不要緊。簡單做個實驗就知道了,這里我們先定義一個對象 Room:

1 2 3 4 5 6 7 8 /** Room 包含了一些電器 */ public class Room {private String television;private String airConditioner;private String refrigerator;private String washer;// 省略 getter/setter }

配置如下:

1 2 3 4 5 6 <bean id="room" class="xyz.coolblog.demo.Room"><property name="television" value="Xiaomi"/><property name="airConditioner" value="Gree"/><property name="refrigerator" value="Haier"/><property name="washer" value="Siemens"/> </bean>

我們先看一下完全實例化好后的 bean 長什么樣的。如下:

從調試信息中可以看得出,Room 的每個成員變量都被賦上值了。然后我們再來看一下“原始的 bean 對象”長的是什么樣的,如下:

結果比較明顯了,所有字段都是 null。這里的 bean 和上面的 bean 指向的是同一個對象Room@1567,但現在這個對象所有字段都是 null,我們把這種對象成為原始的對象。形象點說,上面的 bean 對象是一個裝修好的房子,可以拎包入住了。而這里的 bean 對象還是個毛坯房,還要裝修一下(填充屬性)才行。

?2.3 回顧獲取 bean 的過程

本節,我們來了解從 Spring IOC 容器中獲取 bean 實例的流程(簡化版),這對我們后續的源碼分析會有比較大的幫助。先看圖:

先來簡單介紹一下這張圖,這張圖是一個簡化后的流程圖。開始流程圖中只有一條執行路徑,在條件 sharedInstance != null 這里出現了岔路,形成了綠色和紅色兩條路徑。在上圖中,讀取/添加緩存的方法我用藍色的框和☆標注了出來。至于虛線的箭頭,和虛線框里的路徑,這個下面會說到。

我來按照上面的圖,分析一下整個流程的執行順序。這個流程從 getBean 方法開始,getBean 是個空殼方法,所有邏輯都在 doGetBean 方法中。doGetBean 首先會調用 getSingleton(beanName) 方法獲取 sharedInstance,sharedInstance 可能是完全實例化好的 bean,也可能是一個原始的 bean,當然也有可能是 null。如果不為 null,則走綠色的那條路徑。再經 getObjectForBeanInstance 這一步處理后,綠色的這條執行路徑就結束了。

我們再來看一下紅色的那條執行路徑,也就是 sharedInstance = null 的情況。在第一次獲取某個 bean 的時候,緩存中是沒有記錄的,所以這個時候要走創建邏輯。上圖中的 getSingleton(beanName,
new ObjectFactory() {…}) 方法會創建一個 bean 實例,上圖虛線路徑指的是 getSingleton 方法內部調用的兩個方法,其邏輯如下:

1 2 3 4 5 6 public Object getSingleton(String beanName, ObjectFactory<?> singletonFactory) {// 省略部分代碼singletonObject = singletonFactory.getObject();// ...addSingleton(beanName, singletonObject); }

如上所示,getSingleton 會在內部先調用 getObject 方法創建 singletonObject,然后再調用 addSingleton 將 singletonObject 放入緩存中。getObject 在內部代用了 createBean 方法,createBean 方法基本上也屬于空殼方法,更多的邏輯是寫在 doCreateBean 方法中的。doCreateBean 方法中的邏輯很多,其首先調用了 createBeanInstance 方法創建了一個原始的 bean 對象,隨后調用 addSingletonFactory 方法向緩存中添加單例 bean 工廠,從該工廠可以獲取原始對象的引用,也就是所謂的“早期引用”。再之后,繼續調用 populateBean 方法向原始 bean 對象中填充屬性,并解析依賴。getObject 執行完成后,會返回完全實例化好的 bean。緊接著再調用 addSingleton 把完全實例化好的 bean 對象放入緩存中。到這里,紅色執行路徑差不多也就要結束的。

我這里沒有把 getObject、addSingleton 方法和 getSingleton(String, ObjectFactory) 并列畫在紅色的路徑里,目的是想簡化一下方法的調用棧(都畫進來有點復雜)。我們可以進一步簡化上面的調用流程,比如下面:

這個流程看起來是不是簡單多了,命中緩存走綠色路徑,未命中走紅色的創建路徑。好了,本節先到這。

?3. 源碼分析

好了,經過前面的鋪墊,現在我們終于可以深入源碼一探究竟了,想必大家已等不及了。那我不賣關子了,下面我們按照方法的調用順序,依次來看一下循環依賴相關的代碼。如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 protected <T> T doGetBean(final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOnly)throws BeansException {// ...... // 從緩存中獲取 bean 實例Object sharedInstance = getSingleton(beanName);// ...... }public Object getSingleton(String beanName) {return getSingleton(beanName, true); }protected Object getSingleton(String beanName, boolean allowEarlyReference) {// 從 singletonObjects 獲取實例,singletonObjects 中的實例都是準備好的 bean 實例,可以直接使用Object singletonObject = this.singletonObjects.get(beanName);// 判斷 beanName 對應的 bean 是否正在創建中if (singletonObject == null && isSingletonCurrentlyInCreation(beanName)) {synchronized (this.singletonObjects) {// 從 earlySingletonObjects 中獲取提前曝光的 beansingletonObject = this.earlySingletonObjects.get(beanName);if (singletonObject == null && allowEarlyReference) {// 獲取相應的 bean 工廠ObjectFactory<?> singletonFactory = this.singletonFactories.get(beanName);if (singletonFactory != null) {// 提前曝光 bean 實例(raw bean),用于解決循環依賴singletonObject = singletonFactory.getObject();// 將 singletonObject 放入緩存中,并將 singletonFactory 從緩存中移除this.earlySingletonObjects.put(beanName, singletonObject);this.singletonFactories.remove(beanName);}}}}return (singletonObject != NULL_OBJECT ? singletonObject : null); }

上面的源碼中,doGetBean 所調用的方法 getSingleton(String) 是一個空殼方法,其主要邏輯在 getSingleton(String, boolean) 中。該方法邏輯比較簡單,首先從 singletonObjects 緩存中獲取 bean 實例。若未命中,再去 earlySingletonObjects 緩存中獲取原始 bean 實例。如果仍未命中,則從 singletonFactory 緩存中獲取 ObjectFactory 對象,然后再調用 getObject 方法獲取原始 bean 實例的應用,也就是早期引用。獲取成功后,將該實例放入 earlySingletonObjects 緩存中,并將 ObjectFactory 對象從 singletonFactories 移除。看完這個方法,我們再來看看 getSingleton(String, ObjectFactory) 方法,這個方法也是在 doGetBean 中被調用的。這次我會把 doGetBean 的代碼多貼一點出來,如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 protected <T> T doGetBean(final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOnly)throws BeansException {// ...... Object bean;// 從緩存中獲取 bean 實例Object sharedInstance = getSingleton(beanName);// 這里先忽略 args == null 這個條件if (sharedInstance != null && args == null) {// 進行后續的處理bean = getObjectForBeanInstance(sharedInstance, name, beanName, null);} else {// ......// mbd.isSingleton() 用于判斷 bean 是否是單例模式if (mbd.isSingleton()) {// 再次獲取 bean 實例sharedInstance = getSingleton(beanName, new ObjectFactory<Object>() {@Overridepublic Object getObject() throws BeansException {try {// 創建 bean 實例,createBean 返回的 bean 是完全實例化好的return createBean(beanName, mbd, args);} catch (BeansException ex) {destroySingleton(beanName);throw ex;}}});// 進行后續的處理bean = getObjectForBeanInstance(sharedInstance, name, beanName, mbd);}// ......}// ......// 返回 beanreturn (T) bean; }

這里的代碼邏輯和我在?2.3 回顧獲取 bean 的過程?一節的最后貼的主流程圖已經很接近了,對照那張圖和代碼中的注釋,大家應該可以理解 doGetBean 方法了。繼續往下看:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public Object getSingleton(String beanName, ObjectFactory<?> singletonFactory) {synchronized (this.singletonObjects) {// ......// 調用 getObject 方法創建 bean 實例singletonObject = singletonFactory.getObject();newSingleton = true;if (newSingleton) {// 添加 bean 到 singletonObjects 緩存中,并從其他集合中將 bean 相關記錄移除addSingleton(beanName, singletonObject);}// ......// 返回 singletonObjectreturn (singletonObject != NULL_OBJECT ? singletonObject : null);} }protected void addSingleton(String beanName, Object singletonObject) {synchronized (this.singletonObjects) {// 將 <beanName, singletonObject> 映射存入 singletonObjects 中this.singletonObjects.put(beanName, (singletonObject != null ? singletonObject : NULL_OBJECT));// 從其他緩存中移除 beanName 相關映射this.singletonFactories.remove(beanName);this.earlySingletonObjects.remove(beanName);this.registeredSingletons.add(beanName);} }

上面的代碼中包含兩步操作,第一步操作是調用 getObject 創建 bean 實例,第二步是調用 addSingleton 方法將創建好的 bean 放入緩存中。代碼邏輯并不復雜,相信大家都能看懂。那么接下來我們繼續往下看,這次分析的是 doCreateBean 中的一些邏輯。如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final Object[] args)throws BeanCreationException {BeanWrapper instanceWrapper = null;// ......// ☆ 創建 bean 對象,并將 bean 對象包裹在 BeanWrapper 對象中返回instanceWrapper = createBeanInstance(beanName, mbd, args);// 從 BeanWrapper 對象中獲取 bean 對象,這里的 bean 指向的是一個原始的對象final Object bean = (instanceWrapper != null ? instanceWrapper.getWrappedInstance() : null);/** earlySingletonExposure 用于表示是否”提前暴露“原始對象的引用,用于解決循環依賴。* 對于單例 bean,該變量一般為 true。更詳細的解釋可以參考我之前的文章*/ boolean earlySingletonExposure = (mbd.isSingleton() && this.allowCircularReferences &&isSingletonCurrentlyInCreation(beanName));if (earlySingletonExposure) {// ☆ 添加 bean 工廠對象到 singletonFactories 緩存中addSingletonFactory(beanName, new ObjectFactory<Object>() {@Overridepublic Object getObject() throws BeansException {/* * 獲取原始對象的早期引用,在 getEarlyBeanReference 方法中,會執行 AOP * 相關邏輯。若 bean 未被 AOP 攔截,getEarlyBeanReference 原樣返回 * bean,所以大家可以把 * return getEarlyBeanReference(beanName, mbd, bean) * 等價于:* return bean;*/return getEarlyBeanReference(beanName, mbd, bean);}});}Object exposedObject = bean;// ......// ☆ 填充屬性,解析依賴populateBean(beanName, mbd, instanceWrapper);// ......// 返回 bean 實例return exposedObject; }protected void addSingletonFactory(String beanName, ObjectFactory<?> singletonFactory) {synchronized (this.singletonObjects) {if (!this.singletonObjects.containsKey(beanName)) {// 將 singletonFactory 添加到 singletonFactories 緩存中this.singletonFactories.put(beanName, singletonFactory);// 從其他緩存中移除相關記錄,即使沒有this.earlySingletonObjects.remove(beanName);this.registeredSingletons.add(beanName);}} }

上面的代碼簡化了不少,不過看起來仍有點復雜。好在,上面代碼的主線邏輯比較簡單,由三個方法組成。如下:

1 2 3 4 1. 創建原始 bean 實例 → createBeanInstance(beanName, mbd, args) 2. 添加原始對象工廠對象到 singletonFactories 緩存中 → addSingletonFactory(beanName, new ObjectFactory<Object>{...}) 3. 填充屬性,解析依賴 → populateBean(beanName, mbd, instanceWrapper)

到這里,本節涉及到的源碼就分析完了。可是看完源碼后,我們似乎仍然不知道這些源碼是如何解決循環依賴問題的。難道本篇文章就到這里了嗎?答案是否。下面我來解答這個問題,這里我還是以 BeanA 和 BeanB 兩個類相互依賴為例。在上面的方法調用中,有幾個關鍵的地方,下面一一列舉出來:

1. 創建原始 bean 對象

1 2 instanceWrapper = createBeanInstance(beanName, mbd, args); final Object bean = (instanceWrapper != null ? instanceWrapper.getWrappedInstance() : null);

假設 beanA 先被創建,創建后的原始對象為?BeanA@1234,上面代碼中的 bean 變量指向就是這個對象。

2. 暴露早期引用

1 2 3 4 5 6 addSingletonFactory(beanName, new ObjectFactory<Object>() {@Overridepublic Object getObject() throws BeansException {return getEarlyBeanReference(beanName, mbd, bean);} });

beanA 指向的原始對象創建好后,就開始把指向原始對象的引用通過 ObjectFactory 暴露出去。getEarlyBeanReference 方法的第三個參數 bean 指向的正是 createBeanInstance 方法創建出原始 bean 對象 BeanA@1234。

3. 解析依賴

1 populateBean(beanName, mbd, instanceWrapper);

populateBean 用于向 beanA 這個原始對象中填充屬性,當它檢測到 beanA 依賴于 beanB 時,會首先去實例化 beanB。beanB 在此方法處也會解析自己的依賴,當它檢測到 beanA 這個依賴,于是調用 BeanFactry.getBean(“beanA”) 這個方法,從容器中獲取 beanA。

4. 獲取早期引用

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 protected Object getSingleton(String beanName, boolean allowEarlyReference) {Object singletonObject = this.singletonObjects.get(beanName);if (singletonObject == null && isSingletonCurrentlyInCreation(beanName)) {synchronized (this.singletonObjects) {// ☆ 從緩存中獲取早期引用singletonObject = this.earlySingletonObjects.get(beanName);if (singletonObject == null && allowEarlyReference) {ObjectFactory<?> singletonFactory = this.singletonFactories.get(beanName);if (singletonFactory != null) {// ☆ 從 SingletonFactory 中獲取早期引用singletonObject = singletonFactory.getObject();this.earlySingletonObjects.put(beanName, singletonObject);this.singletonFactories.remove(beanName);}}}}return (singletonObject != NULL_OBJECT ? singletonObject : null); }

接著上面的步驟講,populateBean 調用 BeanFactry.getBean(“beanA”) 以獲取 beanB 的依賴。getBean(“beanA”) 會先調用 getSingleton(“beanA”),嘗試從緩存中獲取 beanA。此時由于 beanA 還沒完全實例化好,于是 this.singletonObjects.get(“beanA”) 返回 null。接著 this.earlySingletonObjects.get(“beanA”) 也返回空,因為 beanA 早期引用還沒放入到這個緩存中。最后調用 singletonFactory.getObject() 返回 singletonObject,此時 singletonObject != null。singletonObject 指向 BeanA@1234,也就是 createBeanInstance 創建的原始對象。此時 beanB 獲取到了這個原始對象的引用,beanB 就能順利完成實例化。beanB 完成實例化后,beanA 就能獲取到 beanB 所指向的實例,beanA 隨之也完成了實例化工作。由于 beanB.beanA 和 beanA 指向的是同一個對象 BeanA@1234,所以 beanB 中的 beanA 此時也處于可用狀態了。

以上的過程對應下面的流程圖:

?4. 總結

到這里,本篇文章差不多就快寫完了,不知道大家看懂了沒。這篇文章在前面做了大量的鋪墊,然后再進行源碼分析。相比于我之前寫的幾篇文章,本篇文章所對應的源碼難度上比之前簡單一些。但說實話也不好寫,我本來只想簡單介紹一下背景知識,然后直接進行源碼分析。但是又怕有的朋友看不懂,所以還是用了大篇幅介紹的背景知識。這樣寫,可能有的朋友覺得比較啰嗦。但是考慮到大家的水平不一,為了保證讓大家能夠更好的理解,所以還是盡量寫的詳細一點。本篇文章總的來說寫的還是有點累的,花了一些心思思考怎么安排章節順序,怎么簡化代碼和畫圖。如果大家看完這篇文章,覺得還不錯的話,不妨給個贊吧,也算是對我的鼓勵吧。

由于個人的技術能力有限,若文章有錯誤不妥之處,歡迎大家指出來。好了,本篇文章到此結束,謝謝大家的閱讀。

?參考:

  • 《Spring 源碼深度解析》- 郝佳著

?附錄:Spring 源碼分析文章列表

?Ⅰ. IOC

更新時間標題
2018-05-30Spring IOC 容器源碼分析系列文章導讀
2018-06-01Spring IOC 容器源碼分析 - 獲取單例 bean
2018-06-04Spring IOC 容器源碼分析 - 創建單例 bean 的過程
2018-06-06Spring IOC 容器源碼分析 - 創建原始 bean 對象
2018-06-08Spring IOC 容器源碼分析 - 循環依賴的解決辦法
2018-06-11Spring IOC 容器源碼分析 - 填充屬性到 bean 原始對象
2018-06-11Spring IOC 容器源碼分析 - 余下的初始化工作

?Ⅱ. AOP

更新時間標題
2018-06-17Spring AOP 源碼分析系列文章導讀
2018-06-20Spring AOP 源碼分析 - 篩選合適的通知器
2018-06-20Spring AOP 源碼分析 - 創建代理對象
2018-06-22Spring AOP 源碼分析 - 攔截器鏈的執行過程

?Ⅲ. MVC

更新時間標題
2018-06-29Spring MVC 原理探秘 - 一個請求的旅行過程
2018-06-30Spring MVC 原理探秘 - 容器的創建過程
  • 本文鏈接:?https://www.tianxiaobo.com/2018/06/08/Spring-IOC-容器源碼分析-循環依賴的解決辦法/

from:http://www.tianxiaobo.com/2018/06/08/Spring-IOC-%E5%AE%B9%E5%99%A8%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E5%BE%AA%E7%8E%AF%E4%BE%9D%E8%B5%96%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/?

總結

以上是生活随笔為你收集整理的Spring IOC 容器源码分析 - 循环依赖的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

日日草天天草 | 麻豆视频免费在线播放 | 久久精品综合网 | 国产人成一区二区三区影院 | av解说在线| 波多野结衣电影久久 | 91成人观看| 五月婷婷香蕉 | 特黄免费av | 人人看黄色 | 天天爽夜夜爽精品视频婷婷 | 亚洲精品国产视频 | www亚洲一区 | 欧美吞精 | 欧美日韩精品免费观看 | 91色网址 | 久久艹综合| 亚洲综合一区二区精品导航 | 久久无码av一区二区三区电影网 | 国产伦精品一区二区三区免费 | 久久99国产精品久久99 | 天天干天天做 | 亚洲成人av片在线观看 | 亚洲精品国久久99热 | 成人精品视频久久久久 | 久久伊人国产精品 | av大片免费在线观看 | 国产精品不卡av | 久久精品5 | 中文字幕在线专区 | 91精品啪在线观看国产 | 欧美日韩精品在线 | 高清美女视频 | 丝袜美女在线 | 久草在线视频首页 | 国产免费高清视频 | 国产精品爽爽久久久久久蜜臀 | 精品高清美女精品国产区 | 国产成人三级在线 | 成人影片在线免费观看 | 欧美日韩不卡在线 | 国产成人精品一区二 | av片免费播放 | av中文字幕av | 久久在现 | 99久久精品无码一区二区毛片 | 国精产品999国精产品岳 | 免费黄色网址网站 | 日韩大片在线播放 | 色偷偷888欧美精品久久久 | av在线播放免费 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 国产最新网站 | 久久精品综合网 | 天天操天天干天天操天天干 | 亚洲一区免费在线 | 激情电影影院 | 久久精品一区二区三区四区 | 国产91精品一区二区 | 亚洲综合成人在线 | 激情av网| 国产精品毛片一区二区在线 | 视频在线观看入口黄最新永久免费国产 | 久久手机精品视频 | 久久久久亚洲精品成人网小说 | 国产视频2区 | 狠狠网亚洲精品 | 国产精品久久视频 | 91精品视频在线看 | 免费特级黄毛片 | 国产亚洲aⅴaaaaaa毛片 | 亚洲午夜精品一区二区三区电影院 | 久久观看 | 免费久久网站 | 日本久久片 | 日韩黄在线观看 | 在线一区av | 三级av免费观看 | 中文字幕在 | 香蕉在线视频播放网站 | 免费三级av | 香蕉视频91 | 欧美a免费 | 夜夜骑天天操 | 91精品国产一区二区在线观看 | 日韩av电影一区 | 成人手机在线视频 | 色一色在线| 日本特黄一级 | 免费成人结看片 | 日韩精品在线看 | 亚洲精品www | 国产精品欧美久久久久无广告 | 99久久99视频只有精品 | 免费av大全 | 欧美一级裸体视频 | 亚洲国产剧情av | 在线观看亚洲国产 | 91亚洲国产成人久久精品网站 | 国产精品爽爽久久久久久蜜臀 | 日韩欧美在线中文字幕 | 国产黄色片在线免费观看 | 日韩中文在线观看 | 欧美在线观看视频免费 | 久久系列 | 久久综合婷婷综合 | 国产91免费在线观看 | 国产黄色片免费观看 | 欧美在线观看视频免费 | 亚洲婷婷在线视频 | 亚洲一区二区视频 | 久久精品99国产精品亚洲最刺激 | 国产精品二区三区 | 激情久久综合 | 久久精品视频在线播放 | 亚洲精品视频在线观看视频 | 国产精品成人免费一区久久羞羞 | 在线免费成人 | 亚洲成人国产精品 | 手机在线黄色网址 | 日日草av | 日本丶国产丶欧美色综合 | 午夜av一区 | 欧美日韩p片 | 日日天天av | 狠狠色丁香久久综合网 | 91成人免费看 | 久久xx视频| 日韩一区二区三区免费视频 | www.伊人色.com | 精品美女久久久久久免费 | 一区二区av | 国产精品综合在线 | 久久国产精品久久精品 | 综合视频在线 | 在线一级片| 97夜夜澡人人双人人人喊 | 97av.com| 久久9999久久 | 懂色av懂色av粉嫩av分享吧 | 一区二区视频在线观看免费 | 97超碰免费| 亚洲丁香久久久 | 免费日韩 精品中文字幕视频在线 | 日韩在线字幕 | 狠狠综合久久av | 色综合天天做天天爱 | 99久久99热这里只有精品 | av网站有哪些 | 在线日韩av | 免费看一级片 | 欧美91av| 成人在线黄色电影 | 午夜美女视频 | 国产色女人 | 日韩理论在线播放 | 国产主播大尺度精品福利免费 | 一区 二区电影免费在线观看 | 中文字幕在线看视频 | 亚洲成人影音 | 欧美在线一级片 | 伊人婷婷色 | www操操 | 天天爱天天操 | 天天操天天是 | 婷婷五月色综合 | 黄色a一级片 | 国产精品久久精品国产 | 一区二区三区在线电影 | 精品一区精品二区高清 | 国产精品美女久久久 | 天堂视频中文在线 | 国产高清免费观看 | 成人在线视频论坛 | 波多野结衣在线中文字幕 | 日本91在线 | 婷婷综合亚洲 | 狠狠操狠狠干天天操 | 四虎在线永久免费观看 | 中文字幕av免费 | 久草免费新视频 | 人人干人人爽 | 97在线精品视频 | 国产午夜一区二区 | 久久免费电影 | 911久久| 午夜精品成人一区二区三区 | 亚洲最大av | 黄色成人免费电影 | 又黄又爽又刺激视频 | 欧美日韩国产亚洲乱码字幕 | 久久久精品在线观看 | 亚洲激情校园春色 | 亚洲黄色高清 | 91av免费看 | 超碰97.com | 激情久久小说 | 中文字幕在线观看三区 | 日韩在线观看视频一区二区三区 | 亚洲第一区在线观看 | 91成人蝌蚪 | 激情五月开心 | 天天操天天透 | 不卡电影免费在线播放一区 | 国产乱码精品一区二区三区介绍 | 又黄又色又爽 | 亚洲黄在线观看 | 色综合久久中文综合久久牛 | 一本色道久久综合亚洲二区三区 | 美女国产精品 | 91麻豆高清视频 | 综合激情网 | 黄色大片视频网站 | 97人人模人人爽人人喊中文字 | 九九热在线精品视频 | 二区中文字幕 | 久久久久久久免费观看 | 综合亚洲视频 | 国产麻豆精品在线观看 | 欧美日韩一区二区三区在线免费观看 | 99精品在线视频播放 | 999国产 | 国产精品18久久久久久不卡孕妇 | 天天色天天射天天干 | 少妇性aaaaaaaaa视频 | av高清影院 | 玖玖玖国产精品 | 五月婷婷丁香在线观看 | 精久久久久 | 国产一区在线免费观看视频 | 国产一级在线 | 999国内精品永久免费视频 | 国产九色在线播放九色 | 日韩伦理一区二区三区av在线 | 久久er99热精品一区二区三区 | 麻豆国产精品一区二区三区 | 国产精品九九久久99视频 | 日韩精品一区二区三区中文字幕 | 91精品网站| 欧美日韩视频在线观看免费 | 亚洲视频在线观看免费 | 在线电影a | 黄色网址av | 五月情婷婷 | 国产精品成人一区二区三区 | 日韩久久精品一区二区三区 | 久久精品波多野结衣 | 久久久久伊人 | 久久久2o19精品 | 亚洲成av人片在线观看香蕉 | 国精产品满18岁在线 | 波多野结衣视频在线 | 在线观看av黄色 | 97在线观看视频 | 国产精品久久久久毛片大屁完整版 | 国产精品亚洲成人 | 27xxoo无遮挡动态视频 | 久久久.com | 97超碰免费 | 久久综合中文色婷婷 | 亚洲国内精品在线 | 久久久久网址 | 天天综合网国产 | 国产91综合一区在线观看 | 中文字幕久久久精品 | 中文字幕一区二区三区四区在线视频 | 91丨九色丨国产在线 | 永久免费的啪啪网站免费观看浪潮 | 久久综合福利 | 国产高清不卡一区二区三区 | 怡红院成人在线 | 91亚洲永久精品 | aa级黄色大片| 九九久久久久久久久激情 | 91精品小视频 | 欧美极度另类 | 91精品国产麻豆国产自产影视 | 免费三及片 | 久久久亚洲麻豆日韩精品一区三区 | 日韩在线视频线视频免费网站 | 欧美日韩高清免费 | 天天操天天综合网 | 欧美亚洲一级片 | 国产精品免费看久久久8精臀av | 91av色 | 一区二区视频电影在线观看 | 亚洲视频,欧洲视频 | 久久精品久久99精品久久 | 国产在线精品播放 | 深爱激情婷婷网 | 欧美午夜理伦三级在线观看 | 国产韩国日本高清视频 | 五月天久久综合网 | 久久视频在线看 | 在线成人欧美 | 在线免费观看视频你懂的 | 夜夜躁日日躁狠狠躁 | 国产视频亚洲 | 国产高清精 | 伊人超碰在线 | 一区二区三区在线免费播放 | av东方在线 | 亚洲黄色在线 | 亚洲成人精品在线观看 | 在线视频app | 亚洲h在线播放在线观看h | 在线免费看片 | 国产精品久久视频 | 99成人免费视频 | 正在播放久久 | 奇米网8888 | 伊人天天狠天天添日日拍 | 久久久99精品免费观看 | av在线免费播放网站 | 高清精品在线 | 色爽网站 | 欧美小视频在线观看 | 91av在线免费播放 | 在线观看亚洲精品 | 黄色在线网站噜噜噜 | 在线激情av电影 | 天天躁天天躁天天躁婷 | 99久久成人 | 天天操天天添天天吹 | 日韩电影一区二区三区 | 亚洲伊人av | 婷婷中文字幕在线观看 | www91在线| 久久免费视频4 | 最近中文字幕免费大全 | 超碰在线97免费 | 99久久国产免费,99久久国产免费大片 | 国产99在线| 亚洲男人天堂a | 一级免费观看 | 国产高清永久免费 | 91久久精品日日躁夜夜躁国产 | 日本99热 | 亚洲在线精品视频 | 日韩激情视频在线观看 | 国产日韩亚洲 | 天天干亚洲 | 国产精品久免费的黄网站 | 亚洲精品乱码久久久久久蜜桃91 | 国产在线不卡 | 奇人奇案qvod | 五月天,com | 97精品国产手机 | 色视频网站在线观看一=区 a视频免费在线观看 | 午夜 久久 tv | 在线观看日韩精品视频 | 亚洲激情影院 | 国产一二三四在线观看视频 | 久久激情五月婷婷 | 日韩在线观看网址 | 日韩精选在线观看 | 欧美精品在线视频 | 久久福利 | 婷婷99| 日韩高清无线码2023 | 超碰日韩在线 | av免费在线免费观看 | 一区二区三区在线影院 | 欧美日在线观看 | 久久久久免费看 | 国产精品第2页 | 国产视频2区 | 精品国产电影 | 麻豆传媒电影在线观看 | 色先锋av资源中文字幕 | 国产精品视频永久免费播放 | 久久这里有精品 | av一级片在线观看 | 在线播放视频一区 | 91午夜精品 | 综合久久五月天 | 中文字幕久久亚洲 | 久产久精国产品 | 九九精品在线观看 | 免费午夜网站 | 日本h视频在线观看 | 国产一级免费电影 | 91精品啪在线观看国产线免费 | 毛片一级免费一级 | 国产无套精品久久久久久 | h视频日本| 久草网在线观看 | 四虎免费在线观看 | 91黄色免费看| 婷婷六月在线 | 亚洲精品欧美视频 | 天天操天天操一操 | 久久 一区 | 色99视频 | 日本在线观看中文字幕无线观看 | 日韩黄色av网站 | 九热精品| 911香蕉视频| 亚洲,国产成人av | 四虎精品成人免费网站 | 2024av在线播放 | 国产毛片在线 | 看黄色.com | 国产精品青草综合久久久久99 | 日韩 国产 | 夜夜操天天 | 激情综合站 | 亚洲激情婷婷 | 黄色av一区二区三区 | 婷婷丁香六月 | 国产999精品久久久 免费a网站 | 国产欧美中文字幕 | 欧美在线free | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 玖玖精品视频 | 蜜桃av久久久亚洲精品 | 久久只精品99品免费久23小说 | 久草视频在线资源站 | 夜夜操狠狠操 | 免费av观看网站 | 亚洲电影自拍 | 中文字幕资源网在线观看 | 91视频在线自拍 | 国产精品自在线拍国产 | 国产成人精品久久亚洲高清不卡 | 国产成人精品av | 日韩在线观看三区 | 日日干天夜夜 | 久久私人影院 | 日韩欧美一区二区三区黑寡妇 | 九色琪琪久久综合网天天 | 日韩中文字幕在线 | 久久99精品久久久久久秒播蜜臀 | 亚洲精品女人久久久 | 美女视频a美女大全免费下载蜜臀 | www.干| 国产精品欧美在线 | 亚洲日本欧美 | 97成人在线观看视频 | 在线免费视频 你懂得 | 欧亚日韩精品一区二区在线 | 国产视频1区2区3区 久久夜视频 | 国产a国产a国产a | 中文字幕免费高清av | 亚洲精品日韩在线观看 | 日韩精品一区二区三区免费观看视频 | 中文av字幕在线观看 | 久久久国产一区 | 91精品啪在线观看国产线免费 | 国产精品网站一区二区三区 | 国产精品男女 | 精品一区欧美 | 国产成人在线播放 | 国产精品久久久久久久久久白浆 | 国产一二三区av | 国内成人精品视频 | 人人玩人人爽 | 99综合久久| 人人澡人人添人人爽一区二区 | 国产精品一区二区三区四区在线观看 | 久久国产精品久久w女人spa | 五月激情婷婷丁香 | 免费在线观看污网站 | 精品人人人人 | 色五月成人| 亚洲涩综合 | 欧美日韩中文字幕在线视频 | 精品久久一区 | 国产在线观看a | 国产一级免费观看 | 日本不卡一区二区三区在线观看 | 精品国产自在精品国产精野外直播 | 人人干人人干人人干 | 亚洲视频专区在线 | 精品国产一区二区三区四 | 成人精品一区二区三区电影免费 | 福利视频区 | 天天躁日日躁狠狠躁 | 免费观看国产视频 | 日韩1页| 国产精品嫩草影视久久久 | 伊人狠狠色丁香婷婷综合 | 91在线视频免费观看 | 国产日韩中文字幕 | 欧美黄网站 | 久久99精品国产麻豆宅宅 | 91porny九色91啦中文 | 狠狠狠色丁香婷婷综合激情 | 亚洲成年人免费网站 | 蜜臀av免费一区二区三区 | 青青河边草免费观看 | 狠狠色丁香婷婷综合基地 | 中文字幕在线看人 | 成人中文字幕在线观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | www.夜色321.com | 毛片网免费 | 国产精品岛国久久久久久久久红粉 | 97操操操| 看全黄大色黄大片 | 国产午夜亚洲精品 | 欧美成人tv | 久久久精品综合 | 免费人成在线观看网站 | 国内精品久久久久影院优 | 国产永久网站 | 国产精品视频专区 | 国产第一二区 | 美女网站视频一区 | 国产精品乱码一区二区视频 | 国产精品毛片久久久久久 | 四虎www.| 91自拍成人 | 久久国产精品电影 | 国产人成精品一区二区三 | 中文字幕日韩精品有码视频 | 国产精品久久久久久久婷婷 | 最近中文字幕国语免费高清6 | av一级一片| 成人aaa毛片 | 91新人在线观看 | 中文字幕亚洲情99在线 | 91精品国产九九九久久久亚洲 | 国产精品视频免费看 | 在线国产福利 | 99精品视频在线播放观看 | 国产美女无遮挡永久免费 | 最近最新中文字幕视频 | 美女在线观看av | 久久久久久久久久影视 | 国产精品aⅴ | 国产亚洲亚洲 | 亚洲乱码久久 | 久久成视频 | 国产一区二区在线观看免费 | 国产视频高清 | 久久久久亚洲精品成人网小说 | 最新影院 | 国产永久免费高清在线观看视频 | 免费亚洲视频在线观看 | 美女网站在线播放 | 欧美激情h | 国产亚洲欧美在线视频 | 色综合天天色综合 | www.亚洲精品在线 | 欧美999| 亚洲国产精品视频 | 中文字幕字幕中文 | 五月婷婷中文网 | 亚洲一级免费观看 | 成人网大片| 91av电影 | 国产精品 日本 | 国产中文字幕网 | 日日夜夜天天人人 | 日本天天操 | 亚洲视频久久 | 成人作爱视频 | 久久精品毛片 | 成人一级电影在线观看 | 免费黄色av. | 天天射网 | 日韩视频免费观看高清完整版在线 | www.夜夜草 | 日日夜夜骑 | 亚洲精品91天天久久人人 | 国产日韩在线观看一区 | 伊在线视频 | 久久99久久久久久 | 美女精品国产 | 久久久999 | 99热国产在线中文 | 国产二区电影 | 夜夜视频资源 | 黄色a三级 | 三上悠亚一区二区在线观看 | 麻豆手机在线 | 中文字幕中文字幕在线中文字幕三区 | 亚洲传媒在线 | 久草在线免费看视频 | 亚洲精品免费在线观看 | 黄色三级在线观看 | 亚洲一区二区精品视频 | 91视频com| 91精品系列 | 99久久国产免费,99久久国产免费大片 | 久草在线观看 | 亚洲精品在线网站 | 国产99在线播放 | 五月天婷婷狠狠 | 国产999精品| 久久久久久久久久久免费 | 午夜电影av | 亚洲精品66 | 国产精品久久久久久久久久久久午夜 | 日韩欧美在线综合网 | 成片免费观看视频 | 黄色国产在线 | 99精品影视| 亚洲欧美精品在线 | 天天干天天草 | 五月亚洲| 88av视频| 国产中文字幕亚洲 | 一区二区三区日韩精品 | 亚洲综合在线一区二区三区 | 四虎影视国产精品免费久久 | 在线午夜电影神马影院 | 欧美成人亚洲 | 亚洲精选久久 | 深夜免费福利视频 | 国产精品久久久毛片 | 天天草网站| 亚洲成人动漫在线观看 | 久久久精品一区二区 | 成人性生交大片免费看中文网站 | 最新免费av在线 | 日韩成人xxxx | 国产一区黄色 | 久青草视频 | 久久久久久蜜av免费网站 | 91看片成人 | 亚洲九九九在线观看 | 天天操天天艹 | 91精品伦理| 久久久久久久久久电影 | 欧美日韩国产mv | 亚洲第一区在线播放 | 亚洲精品资源 | 欧美日韩一区二区在线 | 欧美另类调教 | 久久人人精品 | 午夜 免费| 中文字幕欲求不满 | 五月开心激情 | 色婷婷激情电影 | 伊人狠狠干 | 成人av在线影视 | 日韩综合视频在线观看 | 在线观看亚洲精品 | av在线激情| 不卡电影免费在线播放一区 | 久久亚洲影院 | 国产人成一区二区三区影院 | 日韩在线播放视频 | 国产精品一区二区av影院萌芽 | 久久午夜色播影院免费高清 | 欧美日韩国产在线一区 | 久久综合色天天久久综合图片 | 午夜视频一区二区三区 | 男女全黄一级一级高潮免费看 | 国产精久久久久久久 | 91av精品| 美女精品久久久 | 五月激情六月丁香 | 国产精品一区在线观看 | 国产精品一区在线观看你懂的 | 韩国av一区二区三区 | 992tv在线观看网站 | 在线成人欧美 | 中字幕视频在线永久在线观看免费 | 91在线九色 | 最近中文字幕大全中文字幕免费 | 91成人小视频 | 欧美日韩18 | 欧美激情va永久在线播放 | 中文字幕在线看视频 | 男女男视频 | 天天色天天射天天综合网 | 免费看的黄网站软件 | 久久综合久色欧美综合狠狠 | 丁香婷婷在线 | 天天草天天插 | 日日摸日日添日日躁av | 日韩69视频| 深爱开心激情网 | 亚洲特级毛片 | 日韩免费中文 | 免费黄色在线网站 | 国产精品成人久久久久久久 | 超碰97免费 | 四虎www. | 亚洲久久视频 | 97精产国品一二三产区在线 | 欧美高清视频不卡网 | 韩国一区二区av | 欧美最新大片在线看 | 天堂网av 在线 | 亚洲无人区小视频 | 欧美一区二区三区四区夜夜大片 | 色偷偷88欧美精品久久久 | 午夜av在线 | 亚洲综合丁香 | 手机在线永久免费观看av片 | 欧美日韩69 | 日韩欧美一区二区在线播放 | 久久精品日产第一区二区三区乱码 | 国产一区免费视频 | 精品99免费| 国产一区在线观看视频 | 96香蕉视频 | 五月天丁香亚洲 | 97在线观看免费高清 | 国产精品一区电影 | 久久久久久久久福利 | 久久国产精品系列 | 成人毛片在线观看 | 99精品在这里 | 美女网站黄免费 | 日韩中文在线电影 | 国产精品久久一区二区三区, | 久久a级片| 手机看片国产日韩 | 国产精品av免费在线观看 | 国产精品久久久久av免费 | 在线观看麻豆av | 国产在线观看免费观看 | 久草男人天堂 | 中文字幕在线网 | 最近2019中文免费高清视频观看www99 | 中国一级片免费看 | 91亚色视频在线观看 | www.av小说| 国产亚洲va综合人人澡精品 | 天天爱综合 | 国产精品福利无圣光在线一区 | 97电影院在线观看 | 欧美乱码精品一区 | 久草在 | 国产麻豆精品久久 | 美女精品久久久 | 91精品视屏 | 国产小视频免费在线网址 | 久久午夜免费视频 | 一级特黄aaa大片在线观看 | 久草综合在线 | 国产精品国产三级国产不产一地 | 亚洲欧美日韩精品一区二区 | 欧美一二三视频 | 国产精品久久久av久久久 | 在线亚洲人成电影网站色www | 九九国产精品视频 | 免费在线电影网址大全 | 麻豆视频在线看 | 亚洲欧洲精品一区二区 | 人人爱人人舔 | 国产91精品一区二区麻豆网站 | 国产高清在线观看 | 伊人丁香 | 日韩视频免费观看高清 | 久久爱992xxoo | 亚洲精品视频在线观看网站 | 国产麻豆果冻传媒在线观看 | 蜜桃麻豆www久久囤产精品 | 精品国产一区二区三区在线 | 色综合网 | 国产精品2区 | 国产综合激情 | 97在线免费观看 | 欧美成人亚洲成人 | 久久久免费国产 | 黄色大片入口 | 久久免费在线 | 日韩高清不卡一区二区三区 | 久久久国产影院 | 黄色免费高清视频 | 黄色毛片观看 | 欧美黄网站 | 亚洲精品免费视频 | 精品亚洲一区二区三区 | 九九热免费在线视频 | 久久免费高清 | 久久最新 | 草在线| 日韩性xxxx | 依人成人综合网 | 99视频一区二区 | 成人在线视频免费 | 成年人免费在线观看网站 | 黄网av在线 | 日日干天天射 | 成人久久18免费 | 麻豆av电影 | 又黄又爽的免费高潮视频 | av在线永久免费观看 | 日韩在线看片 | 国产激情电影综合在线看 | 一区二区久久 | 美女福利视频在线 | 午夜av在线 | 五月婷婷激情五月 | 国产一区免费在线观看 | 日韩毛片在线播放 | 亚洲国产精品久久久久久 | 亚洲黄色在线免费观看 | 日本精品在线 | 人人狠狠综合久久亚洲婷 | 在线免费观看欧美日韩 | 欧美日韩国产精品一区二区亚洲 | 国产成人av福利 | 91九色最新 | 91爱看片| 99久久www | 激情视频在线高清看 | 久久亚洲精品电影 | 亚洲视频专区在线 | 97人人模人人爽人人喊中文字 | 久久精品久久精品久久 | 国产成a人亚洲精v品在线观看 | 国产成人亚洲在线观看 | 免费日韩三级 | 99久久婷婷国产综合精品 | www色av| 激情综合色综合久久综合 | 黄色在线观看网站 | 91视频在线免费观看 | 日韩欧美在线视频一区二区三区 | 精品国内 | 成年人免费看的视频 | 国产日韩精品一区二区在线观看播放 | 色偷偷中文字幕 | 亚洲欧美视屏 | 国产69精品久久久久久久久久 | 日日干天夜夜 | 欧美精品v国产精品 | 97久久精品午夜一区二区 | 免费看搞黄视频网站 | 97涩涩视频 | 在线视频在线观看 | 久久国产亚洲精品 | 久久综合免费 | 91视频免费网站 | 久久伊人精品一区二区三区 | 日韩欧美精品在线 | 在线中文字幕视频 | 亚洲国产免费看 | 粉嫩aⅴ一区二区三区 | a国产精品 | 最近高清中文在线字幕在线观看 | 亚洲 成人 欧美 | 久久久久久久久久电影 | 91av99| 综合在线观看色 | 日韩理论在线视频 | 国产在线观看av | av在线免费在线观看 | 中文区中文字幕免费看 | 久香蕉| 黄色在线观看污 | 一区二区三区在线观看免费视频 | 三日本三级少妇三级99 | 色婷婷视频在线 | 高清av免费一区中文字幕 | 日本不卡一区二区 | 国产精久久久久久妇女av | 99视频在线精品国自产拍免费观看 | avcom在线| 色视频成人在线观看免 | 久久伊人精品一区二区三区 | 国产69久久精品成人看 | 久草9视频| 免费日韩一区二区三区 | 久久草草热国产精品直播 | 五月婷综合网 | 国产高清视频网 | 91电影福利 | 日韩精品一区在线观看 | 开心丁香婷婷深爱五月 | 黄a网 | 免费在线观看一级片 | 午夜免费视频网站 | 国产精品精品视频 | 狠狠狠色 | 久久午夜剧场 | 丁香六月婷婷综合 | 久久这里只有精品视频首页 | 国产亚洲精品日韩在线tv黄 | 91视频最新网址 | 在线免费观看国产精品 | 一级黄色毛片 | 91在线91拍拍在线91 | 成年人免费在线观看网站 | 精品国产激情 | 精品国产诱惑 | 日韩欧美高清在线 | 91视频免费视频 | 日韩成人高清在线 | 操操操av| 国产精品乱码一区二三区 | 九九视频这里只有精品 | 婷婷色视频 | 色五月激情五月 | 亚洲无吗av| 国产人成精品一区二区三 | 日本久久久久久久久久 | av怡红院 | 欧美国产不卡 | 999久久久久久久久 69av视频在线观看 | 五月婷婷开心中文字幕 | 91精品国产自产91精品 | 国产视频 久久久 | 色妞久久福利网 | 99国产在线 | 国产专区日韩专区 | 久久99久久99久久 | 日韩美视频 | 五月婷婷激情五月 | 美女精品在线观看 | 久久久久成人精品 | 99久热在线精品视频观看 | 婷婷去俺也去六月色 | 国产欧美中文字幕 | 五月天婷婷免费视频 | 久久久国产精品电影 | 色婷婷88av视频一二三区 | 久久99精品久久久久婷婷 | 一级黄色片在线免费看 | 日日草天天草 | 精品国产激情 | 国产精品久久久久久高潮 | 国产精品久久久久久久久久久免费 | 国产亚洲精品久久久久久久久久久久 | 久久理论视频 | 97成人超碰 | 在线视频app | 欧美日韩一区二区三区在线免费观看 | 夜夜摸夜夜爽 | 91精品欧美 | 人人狠狠综合久久亚洲婷 | 有码视频在线观看 | 日韩视频中文字幕 | 欧美一级视频免费 | 国产手机在线播放 | 国产精品视频在线观看 | 亚洲精品资源在线观看 | 国产精品久久久久久久免费观看 | 不卡视频一区二区三区 | 日韩h在线观看 | 人人玩人人添人人澡超碰 | 欧美日韩超碰 | 99精品免费久久久久久久久 | 久久精品国产亚洲精品 | 在线看一区 | 色网站中文字幕 | 国产 一区二区三区 在线 | 亚洲91av| 97在线视频免费看 | 日韩在线观看中文字幕 | 久草在线视频在线观看 | 五月婷婷导航 | 免费特级黄毛片 | 欧美色图30p| 国产护士av | 欧美一区视频 | 97视频在线| 伊人久久一区 | 欧美另类v | 91成人网页版 | 免费欧美高清视频 | 日韩av高清 | 日b黄色片| a精品视频| 免费在线电影网址大全 | 久久精品中文字幕一区二区三区 | 2023av在线| 国产97色 | 日本资源中文字幕在线 | 久久九九免费视频 | 在线中文字幕播放 | 午夜免费视频网站 | 91cn国产在线 | 久久久影院一区二区三区 | 不卡的av | 日本高清中文字幕有码在线 | 黄色的视频网站 | 毛片在线播放网址 | 超碰av在线 | 成人免费一区二区三区在线观看 | 精品国产自在精品国产精野外直播 | 99re视频在线观看 | 亚州人成在线播放 | 精品国产一区二区三区蜜臀 | 99久久精| 久青草视频在线观看 | 四虎影视精品永久在线观看 | 97精品国自产拍在线观看 | 免费看黄在线 | 91久久久久久国产精品 | 亚洲 在线| 国产精品永久在线 | 国产精品观看 | 欧美色图88 | 久久亚洲综合国产精品99麻豆的功能介绍 | 亚州精品国产 | 91亚洲精品久久久久图片蜜桃 | 夜色资源站wwwcom | 1024在线看片 | 国产精品一区二区在线观看免费 |