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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring IOC 容器源码分析 - 创建单例 bean 的过程

發布時間:2025/3/21 javascript 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring IOC 容器源码分析 - 创建单例 bean 的过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 簡介

在上一篇文章中,我比較詳細的分析了獲取 bean 的方法,也就是getBean(String)的實現邏輯。對于已實例化好的單例 bean,getBean(String) 方法并不會再一次去創建,而是從緩存中獲取。如果某個 bean 還未實例化,這個時候就無法命中緩存。此時,就要根據 bean 的配置信息去創建這個 bean 了。相較于getBean(String)方法的實現邏輯,創建 bean 的方法createBean(String, RootBeanDefinition, Object[])及其所調用的方法邏輯上更為復雜一些。關于創建 bean 實例的過程,我將會分幾篇文章進行分析。本篇文章會先從大體上分析?createBean(String, RootBeanDefinition, Object[])方法的代碼邏輯,至于其所調用的方法將會在隨后的文章中進行分析。

好了,其他的不多說,直接進入正題吧。

?2. 源碼分析

?2.1 創建 bean 實例的入口

在正式分析createBean(String, RootBeanDefinition, Object[])方法前,我們先來看看 createBean 方法是在哪里被調用的。如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public T doGetBean(...) {// 省略不相關代碼if (mbd.isSingleton()) {sharedInstance = getSingleton(beanName, new ObjectFactory<Object>() {@Overridepublic Object getObject() throws BeansException {try {return createBean(beanName, mbd, args);}catch (BeansException ex) {destroySingleton(beanName);throw ex;}}});bean = getObjectForBeanInstance(sharedInstance, name, beanName, mbd);}// 省略不相關代碼 }

上面是 doGetBean 方法的代碼片段,從中可以發現 createBean 方法。createBean 方法被匿名工廠類的 getObject 方法包裹,但這個匿名工廠類對象并未直接調用 getObject 方法。而是將自身作為參數傳給了getSingleton(String, ObjectFactory)方法,那么我們接下來再去看看一下getSingleton(String, ObjectFactory) 方法的實現。如下:

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 public Object getSingleton(String beanName, ObjectFactory<?> singletonFactory) {Assert.notNull(beanName, "'beanName' must not be null");synchronized (this.singletonObjects) {// 從緩存中獲取單例 bean,若不為空,則直接返回,不用再初始化Object singletonObject = this.singletonObjects.get(beanName);if (singletonObject == null) {if (this.singletonsCurrentlyInDestruction) {throw new BeanCreationNotAllowedException(beanName,"Singleton bean creation not allowed while singletons of this factory are in destruction " +"(Do not request a bean from a BeanFactory in a destroy method implementation!)");}if (logger.isDebugEnabled()) {logger.debug("Creating shared instance of singleton bean '" + beanName + "'");}/* * 將 beanName 添加到 singletonsCurrentlyInCreation 集合中,* 用于表明 beanName 對應的 bean 正在創建中*/beforeSingletonCreation(beanName);boolean newSingleton = false;boolean recordSuppressedExceptions = (this.suppressedExceptions == null);if (recordSuppressedExceptions) {this.suppressedExceptions = new LinkedHashSet<Exception>();}try {// 通過 getObject 方法調用 createBean 方法創建 bean 實例singletonObject = singletonFactory.getObject();newSingleton = true;}catch (IllegalStateException ex) {singletonObject = this.singletonObjects.get(beanName);if (singletonObject == null) {throw ex;}}catch (BeanCreationException ex) {if (recordSuppressedExceptions) {for (Exception suppressedException : this.suppressedExceptions) {ex.addRelatedCause(suppressedException);}}throw ex;}finally {if (recordSuppressedExceptions) {this.suppressedExceptions = null;}// 將 beanName 從 singletonsCurrentlyInCreation 移除afterSingletonCreation(beanName);}if (newSingleton) {/* * 將 <beanName, singletonObject> 鍵值對添加到 singletonObjects 集合中,* 并從其他集合(比如 earlySingletonObjects)中移除 singletonObject 記錄*/addSingleton(beanName, singletonObject);}}return (singletonObject != NULL_OBJECT ? singletonObject : null);} }

上面的方法邏輯不是很復雜,這里簡單總結一下。如下:

  • 先從 singletonObjects 集合獲取 bean 實例,若不為空,則直接返回
  • 若為空,進入創建 bean 實例階段。先將 beanName 添加到 singletonsCurrentlyInCreation
  • 通過 getObject 方法調用 createBean 方法創建 bean 實例
  • 將 beanName 從 singletonsCurrentlyInCreation 集合中移除
  • 將 <beanName, singletonObject> 映射緩存到 singletonObjects 集合中
  • 從上面的分析中,我們知道了 createBean 方法在何處被調用的。那么接下來我們一起深入 createBean 方法的源碼中,來看看這個方法具體都做了什么事情。

    ?2.2 createBean 方法全貌

    createBean 和 getBean 方法類似,基本上都是空殼方法,只不過 createBean 的邏輯稍微多點,多做了一些事情。下面我們一起看看這個方法的實現邏輯,如下:

    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 protected Object createBean(String beanName, RootBeanDefinition mbd, Object[] args) throws BeanCreationException {if (logger.isDebugEnabled()) {logger.debug("Creating instance of bean '" + beanName + "'");}RootBeanDefinition mbdToUse = mbd;// 解析 bean 的類型Class<?> resolvedClass = resolveBeanClass(mbd, beanName);if (resolvedClass != null && !mbd.hasBeanClass() && mbd.getBeanClassName() != null) {mbdToUse = new RootBeanDefinition(mbd);mbdToUse.setBeanClass(resolvedClass);}try {// 處理 lookup-method 和 replace-method 配置,Spring 將這兩個配置統稱為 override methodmbdToUse.prepareMethodOverrides();}catch (BeanDefinitionValidationException ex) {throw new BeanDefinitionStoreException(mbdToUse.getResourceDescription(),beanName, "Validation of method overrides failed", ex);}try {// 在 bean 初始化前應用后置處理,如果后置處理返回的 bean 不為空,則直接返回Object bean = resolveBeforeInstantiation(beanName, mbdToUse);if (bean != null) {return bean;}}catch (Throwable ex) {throw new BeanCreationException(mbdToUse.getResourceDescription(), beanName,"BeanPostProcessor before instantiation of bean failed", ex);}// 調用 doCreateBean 創建 beanObject beanInstance = doCreateBean(beanName, mbdToUse, args);if (logger.isDebugEnabled()) {logger.debug("Finished creating instance of bean '" + beanName + "'");}return beanInstance; }

    上面的代碼不長,代碼的執行流程比較容易看出,這里羅列一下:

  • 解析 bean 類型
  • 處理 lookup-method 和 replace-method 配置
  • 在 bean 初始化前應用后置處理,若后置處理返回的 bean 不為空,則直接返回
  • 若上一步后置處理返回的 bean 為空,則調用 doCreateBean 創建 bean 實例
  • 下面我會分節對第2、3和4步的流程進行分析,步驟1的詳細實現大家有興趣的話,就自己去看看吧。

    ?2.2.1 驗證和準備 override 方法

    當用戶配置了 lookup-method 和 replace-method 時,Spring 需要對目標 bean 進行增強。在增強之前,需要做一些準備工作,也就是 prepareMethodOverrides 中的邏輯。下面來看看這個方法的源碼:

    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 public void prepareMethodOverrides() throws BeanDefinitionValidationException {MethodOverrides methodOverrides = getMethodOverrides();if (!methodOverrides.isEmpty()) {Set<MethodOverride> overrides = methodOverrides.getOverrides();synchronized (overrides) {// 循環處理每個 MethodOverride 對象for (MethodOverride mo : overrides) {prepareMethodOverride(mo);}}} }protected void prepareMethodOverride(MethodOverride mo) throws BeanDefinitionValidationException {// 獲取方法名為 mo.getMethodName() 的方法數量,當方法重載時,count 的值就會大于1int count = ClassUtils.getMethodCountForName(getBeanClass(), mo.getMethodName());// count = 0,表明根據方法名未找到相應的方法,此時拋出異常if (count == 0) {throw new BeanDefinitionValidationException("Invalid method override: no method with name '" + mo.getMethodName() +"' on class [" + getBeanClassName() + "]");}// 若 count = 1,表明僅存在已方法名為 mo.getMethodName(),這意味著方法不存在重載else if (count == 1) {// 方法不存在重載,則將 overloaded 成員變量設為 falsemo.setOverloaded(false);} }

    上面的源碼中,prepareMethodOverrides方法循環調用了prepareMethodOverride方法,并沒其他的太多邏輯。主要準備工作都是在 prepareMethodOverride 方法中進行的,所以我們重點關注一下這個方法。prepareMethodOverride 這個方法主要用于獲取指定方法的方法數量 count,并根據 count 的值進行相應的處理。count = 0 時,表明方法不存在,此時拋出異常。count = 1 時,設置 MethodOverride 對象的overloaded成員變量為 false。這樣做的目的在于,提前標注名稱mo.getMethodName()的方法不存在重載,在使用 CGLIB 增強階段就不需要進行校驗,直接找到某個方法進行增強即可。

    上面的方法沒太多的邏輯,比較簡單,就先分析到這里。

    ?2.2.2 bean 實例化前的后置處理

    后置處理是 Spring 的一個拓展點,用戶通過實現 BeanPostProcessor 接口,并將實現類配置到 Spring 的配置文件中(或者使用注解),即可在 bean 初始化前后進行自定義操作。關于后置處理較為詳細的說明,可以參考我的了一篇文章Spring IOC 容器源碼分析系列文章導讀,這里就不贅述了。下面我們來看看 createBean 方法中的后置處理邏輯,如下:

    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 protected Object resolveBeforeInstantiation(String beanName, RootBeanDefinition mbd) {Object bean = null;// 檢測是否解析過,mbd.beforeInstantiationResolved 的值在下面的代碼中會被設置if (!Boolean.FALSE.equals(mbd.beforeInstantiationResolved)) {if (!mbd.isSynthetic() && hasInstantiationAwareBeanPostProcessors()) {Class<?> targetType = determineTargetType(beanName, mbd);if (targetType != null) {// 應用前置處理bean = applyBeanPostProcessorsBeforeInstantiation(targetType, beanName);if (bean != null) {// 應用后置處理bean = applyBeanPostProcessorsAfterInitialization(bean, beanName);}}}// 設置 mbd.beforeInstantiationResolvedmbd.beforeInstantiationResolved = (bean != null);}return bean; }protected Object applyBeanPostProcessorsBeforeInstantiation(Class<?> beanClass, String beanName) {for (BeanPostProcessor bp : getBeanPostProcessors()) {// InstantiationAwareBeanPostProcessor 一般在 Spring 框架內部使用,不建議用戶直接使用if (bp instanceof InstantiationAwareBeanPostProcessor) {InstantiationAwareBeanPostProcessor ibp = (InstantiationAwareBeanPostProcessor) bp;// bean 初始化前置處理Object result = ibp.postProcessBeforeInstantiation(beanClass, beanName);if (result != null) {return result;}}}return null; }public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName)throws BeansException {Object result = existingBean;for (BeanPostProcessor beanProcessor : getBeanPostProcessors()) {// bean 初始化后置處理result = beanProcessor.postProcessAfterInitialization(result, beanName);if (result == null) {return result;}}return result; }

    在 resolveBeforeInstantiation 方法中,當前置處理方法返回的 bean 不為空時,后置處理才會被執行。前置處理器是 InstantiationAwareBeanPostProcessor 類型的,該種類型的處理器一般用在 Spring 框架內部,比如 AOP 模塊中的AbstractAutoProxyCreator抽象類間接實現了這個接口中的?postProcessBeforeInstantiation方法,所以 AOP 可以在這個方法中生成為目標類的代理對象。不過我在調試的過程中,發現 AOP 在此處生成代理對象是有條件的。一般情況下條件都不成立,也就不會在此處生成代理對象。至于這個條件為什么不成立,因 AOP 這一塊的源碼我還沒來得及看,所以暫時還無法解答。等我看過 AOP 模塊的源碼后,我再來嘗試分析這個條件。

    ?2.2.3 調用 doCreateBean 方法創建 bean

    這一節,我們來分析一下doCreateBean方法的源碼。在 Spring 中,做事情的方法基本上都是以do開頭的,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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final Object[] args)throws BeanCreationException {/* * BeanWrapper 是一個基礎接口,由接口名可看出這個接口的實現類用于包裹 bean 實例。* 通過 BeanWrapper 的實現類可以方便的設置/獲取 bean 實例的屬性*/BeanWrapper instanceWrapper = null;if (mbd.isSingleton()) {// 從緩存中獲取 BeanWrapper,并清理相關記錄instanceWrapper = this.factoryBeanInstanceCache.remove(beanName);}if (instanceWrapper == null) {/* * 創建 bean 實例,并將實例包裹在 BeanWrapper 實現類對象中返回。createBeanInstance * 中包含三種創建 bean 實例的方式:* 1. 通過工廠方法創建 bean 實例* 2. 通過構造方法自動注入(autowire by constructor)的方式創建 bean 實例* 3. 通過無參構造方法方法創建 bean 實例** 若 bean 的配置信息中配置了 lookup-method 和 replace-method,則會使用 CGLIB * 增強 bean 實例。關于這個方法,后面會專門寫一篇文章介紹,這里先說這么多。*/instanceWrapper = createBeanInstance(beanName, mbd, args);}// 此處的 bean 可以認為是一個原始的 bean 實例,暫未填充屬性final Object bean = (instanceWrapper != null ? instanceWrapper.getWrappedInstance() : null);Class<?> beanType = (instanceWrapper != null ? instanceWrapper.getWrappedClass() : null);mbd.resolvedTargetType = beanType;// 這里又遇到后置處理了,此處的后置處理是用于處理已“合并的 BeanDefinition”。關于這種后置處理器具體的實現細節就不深入理解了,大家有興趣可以自己去看synchronized (mbd.postProcessingLock) {if (!mbd.postProcessed) {try {applyMergedBeanDefinitionPostProcessors(mbd, beanType, beanName);}catch (Throwable ex) {throw new BeanCreationException(mbd.getResourceDescription(), beanName,"Post-processing of merged bean definition failed", ex);}mbd.postProcessed = true;}}/** earlySingletonExposure 是一個重要的變量,這里要說明一下。該變量用于表示是否提前暴露* 單例 bean,用于解決循環依賴。earlySingletonExposure 由三個條件綜合而成,如下:* 條件1:mbd.isSingleton() - 表示 bean 是否是單例類型* 條件2:allowCircularReferences - 是否允許循環依賴* 條件3:isSingletonCurrentlyInCreation(beanName) - 當前 bean 是否處于創建的狀態中* * earlySingletonExposure = 條件1 && 條件2 && 條件3 * = 單例 && 是否允許循環依賴 && 是否存于創建狀態中。*/boolean earlySingletonExposure = (mbd.isSingleton() && this.allowCircularReferences &&isSingletonCurrentlyInCreation(beanName));if (earlySingletonExposure) {if (logger.isDebugEnabled()) {logger.debug("Eagerly caching bean '" + beanName +"' to allow for resolving potential circular references");}// 添加工廠對象到 singletonFactories 緩存中addSingletonFactory(beanName, new ObjectFactory<Object>() {@Overridepublic Object getObject() throws BeansException {// 獲取早期 bean 的引用,如果 bean 中的方法被 AOP 切點所匹配到,此時 AOP 相關邏輯會介入return getEarlyBeanReference(beanName, mbd, bean);}});}Object exposedObject = bean;try {// 向 bean 實例中填充屬性,populateBean 方法也是一個很重要的方法,后面會專門寫文章分析populateBean(beanName, mbd, instanceWrapper);if (exposedObject != null) {/** 進行余下的初始化工作,詳細如下:* 1. 判斷 bean 是否實現了 BeanNameAware、BeanFactoryAware、* BeanClassLoaderAware 等接口,并執行接口方法* 2. 應用 bean 初始化前置操作* 3. 如果 bean 實現了 InitializingBean 接口,則執行 afterPropertiesSet * 方法。如果用戶配置了 init-method,則調用相關方法執行自定義初始化邏輯* 4. 應用 bean 初始化后置操作* * 另外,AOP 相關邏輯也會在該方法中織入切面邏輯,此時的 exposedObject 就變成了* 一個代理對象了*/exposedObject = initializeBean(beanName, exposedObject, mbd);}}catch (Throwable ex) {if (ex instanceof BeanCreationException && beanName.equals(((BeanCreationException) ex).getBeanName())) {throw (BeanCreationException) ex;}else {throw new BeanCreationException(mbd.getResourceDescription(), beanName, "Initialization of bean failed", ex);}}if (earlySingletonExposure) {Object earlySingletonReference = getSingleton(beanName, false);if (earlySingletonReference != null) {// 若 initializeBean 方法未改變 exposedObject 的引用,則此處的條件為 true。if (exposedObject == bean) {exposedObject = earlySingletonReference;}// 下面的邏輯我也沒完全搞懂,就不分析了。見諒。else if (!this.allowRawInjectionDespiteWrapping && hasDependentBean(beanName)) {String[] dependentBeans = getDependentBeans(beanName);Set<String> actualDependentBeans = new LinkedHashSet<String>(dependentBeans.length);for (String dependentBean : dependentBeans) {if (!removeSingletonIfCreatedForTypeCheckOnly(dependentBean)) {actualDependentBeans.add(dependentBean);}}if (!actualDependentBeans.isEmpty()) {throw new BeanCurrentlyInCreationException(beanName,"Bean with name '" + beanName + "' has been injected into other beans [" +StringUtils.collectionToCommaDelimitedString(actualDependentBeans) +"] in its raw version as part of a circular reference, but has eventually been " +"wrapped. This means that said other beans do not use the final version of the " +"bean. This is often the result of over-eager type matching - consider using " +"'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.");}}}}try {// 注冊銷毀邏輯registerDisposableBeanIfNecessary(beanName, bean, mbd);}catch (BeanDefinitionValidationException ex) {throw new BeanCreationException(mbd.getResourceDescription(), beanName, "Invalid destruction signature", ex);}return exposedObject; }

    上面的注釋比較多,分析的應該比較詳細的。不過有一部分代碼我暫時沒看懂,就不分析了,見諒。下面我們來總結一下 doCreateBean 方法的執行流程吧,如下:

  • 從緩存中獲取 BeanWrapper 實現類對象,并清理相關記錄
  • 若未命中緩存,則創建 bean 實例,并將實例包裹在 BeanWrapper 實現類對象中返回
  • 應用 MergedBeanDefinitionPostProcessor 后置處理器相關邏輯
  • 根據條件決定是否提前暴露 bean 的早期引用(early reference),用于處理循環依賴問題
  • 調用 populateBean 方法向 bean 實例中填充屬性
  • 調用 initializeBean 方法完成余下的初始化工作
  • 注冊銷毀邏輯
  • doCreateBean 方法的流程比較復雜,步驟略多。由此也可了解到創建一個 bean 還是很復雜的,這中間要做的事情繁多。比如填充屬性、對 BeanPostProcessor 拓展點提供支持等。以上的步驟對應的方法具體是怎樣實現的,本篇文章并不打算展開分析。在后續的文章中,我會單獨寫文章分析幾個邏輯比較復雜的步驟。有興趣的閱讀的朋友可以稍微等待一下,相關文章本周會陸續進行更新。

    ?3. 總結

    到這里,createBean 方法及其所調用的方法的源碼就分析完了。總的來說,createBean 方法還是比較復雜的,需要多看幾遍才能理清一些頭緒。由于 createBean 方法比較復雜,對于以上的源碼分析,我并不能保證不出錯。如果有寫錯的地方,還請大家指點迷津。畢竟當局者迷,作為作者,我很難意識到哪里寫的有問題。

    好了,本篇文章到此結束。謝謝閱讀。

    ?參考

    • 《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/04/Spring-IOC-容器源碼分析-創建單例-bean/

    from:?http://www.tianxiaobo.com/2018/06/04/Spring-IOC-%E5%AE%B9%E5%99%A8%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E5%88%9B%E5%BB%BA%E5%8D%95%E4%BE%8B-bean/?

    總結

    以上是生活随笔為你收集整理的Spring IOC 容器源码分析 - 创建单例 bean 的过程的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    日本福利视频在线 | 中文欧美字幕免费 | 18性欧美xxxⅹ性满足 | 丁香五月亚洲综合在线 | 国产96在线观看 | 人人干人人艹 | 精品免费久久久久久 | 日韩动漫免费观看高清完整版在线观看 | 91少妇精拍在线播放 | 丁香高清视频在线看看 | 美女视频一区 | 日韩免费在线观看网站 | 国产成视频在线观看 | 午夜av一区二区三区 | 成人一级片在线观看 | 国产又粗又猛又色 | 久章草在线观看 | 玖玖爱免费视频 | 日韩在线免费 | 夜夜夜夜夜夜操 | 欧美日韩中文国产一区发布 | 亚洲成人精品影院 | 免费福利片 | 在线电影日韩 | 天天干干| 国产高清在线一区 | av在线看片 | 久久女同性恋中文字幕 | v片在线播放 | 亚洲国产成人av网 | 丁香五香天综合情 | 免费观看日韩av | 久久久久久免费 | 特黄一级毛片 | 日韩色一区二区三区 | 日日躁夜夜躁aaaaxxxx | 国产一区二区在线看 | 国产在线观看 | 欧美高清视频不卡网 | 成人av免费在线看 | 欧美a级在线播放 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 香蕉视频免费看 | 国产精品一区二区免费在线观看 | 欧美精品免费在线 | 亚洲国产影院av久久久久 | 久久久免费观看 | 成人午夜片av在线看 | 久久综合干 | 97超在线| 中文字幕在线观看亚洲 | 日本护士撒尿xxxx18 | 国产xxxxx在线观看 | 亚洲国产精品电影在线观看 | 99精品国产亚洲 | 激情五月婷婷综合 | 色噜噜噜 | 国产成人一区二区在线观看 | 在线免费观看视频 | 亚洲 欧美 变态 国产 另类 | 天天干天天做天天爱 | 人人视频网站 | 在线天堂视频 | 激情综合一区 | 超碰在线色 | 婷婷新五月 | 国产精品精品久久久久久 | 免费成人黄色片 | 欧美亚洲另类在线视频 | 在线免费性生活片 | 午夜美女av | 欧美激情第一区 | 国产精品久久久久久久7电影 | 久久久久久高清 | 激情综合五月婷婷 | 日韩欧美在线观看一区二区三区 | 国产尤物视频在线 | 欧美日韩一区二区免费在线观看 | 麻花豆传媒mv在线观看网站 | 日本性生活一级片 | 天天干天天搞天天射 | 免费91在线| 欧美日韩亚洲第一页 | 色婷婷骚婷婷 | 成人黄色国产 | 国产欧美久久久精品影院 | 欧美日韩国产免费视频 | 久久一区二区三区超碰国产精品 | 亚洲黄色区 | 久久国产综合视频 | 久久视频免费在线观看 | 中文字幕亚洲国产 | 人人精久 | 97伊人网| 国产一区二区在线视频观看 | 能在线观看的日韩av | 精品日韩中文字幕 | www.五月天色 | 久久久久亚洲精品 | 久久高清视频免费 | 在线免费观看黄色大片 | av成人免费在线 | 91视频免费观看 | 久久99亚洲精品 | www免费看片com | 亚洲精品国 | 精品国偷自产在线 | 成人免费一区二区三区在线观看 | 亚洲va在线va天堂va偷拍 | 免费视频久久久久 | 亚洲少妇xxxx | 在线视频 你懂得 | 亚洲国产精品传媒在线观看 | 国产小视频免费在线网址 | 日韩av一区二区三区在线观看 | 国产成人精品免高潮在线观看 | 国产精品自在欧美一区 | adc在线观看| 日韩精品免费一区二区 | 69视频在线| 成年人网站免费在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 国产在线观看免费av | 日韩美精品视频 | 久久综合久久鬼 | 免费看黄色小说的网站 | 麻豆传媒视频在线免费观看 | 成人资源在线 | 中文字幕在线观看免费 | 亚洲一区二区三区四区在线视频 | 久久不卡国产精品一区二区 | 97夜夜澡人人爽人人免费 | 毛片美女网站 | 日韩在线视频观看 | 天天摸夜夜操 | www.国产在线 | 九九免费在线观看 | 视频在线亚洲 | 国产中文字幕视频 | 久草线 | 久久天天躁 | 亚洲aⅴ免费在线观看 | 天天干天天拍 | 久久躁日日躁aaaaxxxx | 亚洲午夜久久久久久久久电影网 | 国产aa免费视频 | 国产成人精品一区一区一区 | 丁香婷婷社区 | 精品久久视频 | 探花国产在线 | 中文字幕资源站 | 天天操天天操天天操天天操天天操 | 五月天亚洲婷婷 | 最新国产视频 | 国产91免费在线观看 | 久草热久草视频 | 国产一区在线视频 | 欧洲精品在线视频 | 色姑娘综合天天 | 国产日韩欧美在线观看视频 | 国产日韩一区在线 | 成人av免费电影 | 美女网站黄在线观看 | 国产精品一区二区你懂的 | 国产精品一区久久久久 | 狠狠色伊人亚洲综合网站野外 | 91精品在线免费 | 人人爽人人爽人人片 | 四虎成人精品永久免费av | 看国产黄色大片 | 正在播放国产一区 | 中字幕视频在线永久在线观看免费 | 久草在线这里只有精品 | 国产啊v在线观看 | 亚洲视频在线观看 | 五月激情五月激情 | 在线视频一区二区 | 国产精品一区二区 91 | av在线影视 | 久久国产乱 | 婷婷丁香久久五月婷婷 | 在线免费成人 | 亚洲91精品在线观看 | 96精品视频 | 美女黄频在线观看 | 一区二区精品久久 | 亚洲va欧美| 免费在线观看毛片网站 | 国产一卡二卡四卡国 | 中文字幕视频观看 | 深夜国产在线 | 国产成人三级在线 | 黄色亚洲免费 | 99操视频| 国产五月色婷婷六月丁香视频 | 国内精品久久天天躁人人爽 | 国产黄色大片 | 97网站| 狠狠干2018| 99一区二区三区 | 97超碰超碰| 999久久久久| 精品久操| 国产又粗又猛又色又黄视频 | 成年人精品 | 最新国产精品拍自在线播放 | 四虎成人精品 | 国产亚洲综合在线 | 在线观看av小说 | 激情av网| 91精品在线免费观看 | 亚洲高清视频一区二区三区 | 久草在线99 | 国产区 在线 | 五月亚洲综合 | av电影在线观看完整版一区二区 | 成人午夜电影在线 | av福利在线免费观看 | 碰超在线97人人 | 成人网444ppp | 精品美女在线视频 | 最新av免费在线 | 亚洲精品videossex少妇 | 中文字幕电影网 | 欧美最猛性xxxx | 人人玩人人添人人 | 婷婷久久久久 | 一二三区高清 | 999在线精品 | 免费在线观看av网站 | 丁香花中文在线免费观看 | 久久99爱视频 | 婷婷色六月天 | 日韩高清一区 | 一区 在线 影院 | 国产精品va在线 | 国内99视频| av超碰免费在线 | 亚洲国产欧洲综合997久久, | 丁香九月激情综合 | 精品一区 在线 | 欧美韩日在线 | 国产一区免费观看 | 欧美日韩国产一二 | 爱av在线网 | 国产精品久久久久久久久久久久久 | 超碰夜夜 | 国产成人在线免费观看 | 成人啊 v | 久久精品这里都是精品 | 456免费视频 | 成年人三级网站 | 免费福利在线播放 | 日日干天天 | www色av| 国产精品欧美一区二区三区不卡 | 在线a人v观看视频 | 人人爱人人舔 | 在线观看视频91 | 亚洲精品国产区 | 91视频免费网址 | 国内精品久久久久久 | 日韩在线观看av | 国产日韩欧美在线观看视频 | 色黄www小说 | 特级大胆西西4444www | 黄色三级免费观看 | 在线观看不卡视频 | 久久综合欧美精品亚洲一区 | 国产精品一区在线播放 | 最新av中文字幕 | 亚洲专区视频在线观看 | 福利一区二区 | 亚洲精品国偷拍自产在线观看 | 国产资源网 | 精品久久亚洲 | www国产亚洲精品久久网站 | 久久噜噜少妇网站 | 色小说av| 国产露脸91国语对白 | 免费福利在线视频 | 国产在线观看,日本 | 久久精彩视频 | 日韩在线大片 | 99人久久精品视频最新地址 | 高清av免费一区中文字幕 | 在线观看完整版 | 久久精品欧美日韩精品 | 九九视频在线播放 | 成人 亚洲 欧美 | 国产在线视频一区 | 黄视频色网站 | 亚洲色视频| 免费日韩一区二区三区 | 国产91精品欧美 | 狠狠色狠狠色综合系列 | 色综合天天色综合 | 三级动态视频在线观看 | 91黄视频在线观看 | 91久久国产露脸精品国产闺蜜 | 在线观看免费视频 | av视屏在线播放 | 国产美女搞久久 | 亚洲另类人人澡 | 91亚洲狠狠婷婷综合久久久 | 久久久免费观看完整版 | 亚洲免费观看在线视频 | 天天草天天操 | 人人干人人添 | 91精品亚洲影视在线观看 | 狠狠色丁香婷婷综合 | 国产精品va在线观看入 | 成人精品电影 | 91丨九色丨勾搭 | 91丨porny丨九色 | 91在线产啪 | 亚洲 欧美 日韩 综合 | 国产精品成人一区二区三区吃奶 | 亚洲精品视频在线观看免费 | 91免费在线视频 | 亚洲天天在线日亚洲洲精 | 婷婷射五月 | 香蕉视频导航 | 91九色网站 | av电影在线免费 | 精品99视频 | 久草免费福利在线观看 | 日日夜夜狠狠操 | 亚洲最新av在线网站 | 91视频免费观看 | 国产成人精品aaa | 91精品第一页 | 一区二区三区日韩在线观看 | 97国产大学生情侣白嫩酒店 | 色干综合 | 99久久久久国产精品免费 | 国产伦理久久精品久久久久_ | 亚洲国产成人精品电影在线观看 | 超碰人人在线观看 | 六月丁香激情综合 | 成人理论在线观看 | 久久首页 | 亚洲精品一区二区三区新线路 | 日韩视频在线不卡 | 欧美一级视频在线观看 | 一区二区三区四区精品 | 国产精品久久久久久久久久久免费看 | 国产黄色免费 | av色影院 | 91在线精品一区二区 | 亚洲免费视频观看 | 日韩一级网站 | 国产精品专区在线 | 久草新在线| 天天综合操 | 国内精品久久久久影院一蜜桃 | 亚洲va韩国va欧美va精四季 | 久久综合五月天 | 黄色视屏免费在线观看 | 亚洲精品国产综合99久久夜夜嗨 | 337p日本大胆噜噜噜噜 | 国产成人av一区二区三区在线观看 | 亚洲精品动漫久久久久 | 一区二区三区中文字幕在线 | 亚洲日本精品视频 | 免费91在线观看 | 国产国语在线 | 综合网在线视频 | 天堂在线一区二区 | 亚洲六月丁香色婷婷综合久久 | 日日草夜夜操 | 亚洲精品视频一 | 国产又粗又猛又黄又爽的视频 | 中文字幕在线播出 | 久久精品99国产精品 | 国产免费一区二区三区网站免费 | 在线免费av网 | 亚州精品一二三区 | 亚洲精品在线视频观看 | 国产精品 美女 | 草久久精品 | 91视频国产高清 | 国产精品久久久久国产精品日日 | 国产精品视频免费在线观看 | 丝袜美腿在线 | 亚洲黄色在线播放 | 日韩最新理论电影 | 天天爱天天 | 91漂亮少妇露脸在线播放 | 五月婷婷六月综合 | 久久免费成人网 | 精品黄色片 | 色噜噜色噜噜 | 色噜噜日韩精品欧美一区二区 | 激情av在线资源 | 色婷婷综合久久久中文字幕 | 91亚州| 欧美日韩精品在线观看视频 | 国产在线2020 | 四虎影视成人 | 99久热 | 一级黄色片在线播放 | 国产一区播放 | 日韩精品一区二区在线观看 | 超碰97久久 | 久久综合九色九九 | 欧美性色综合 | 成年人电影免费在线观看 | 超碰日韩在线 | 午夜久久网站 | 香蕉视频4aa | 日韩免费播放 | 99综合视频 | 综合铜03| 久久久久久久久久久久久国产精品 | 国产精品6 | 国产精品免费观看久久 | 狠狠躁夜夜躁人人爽超碰91 | 久久人人97超碰国产公开结果 | 国产在线视频导航 | 中文字幕之中文字幕 | 国产精品成人一区二区 | 国产一区二区在线播放 | 欧美久久久久久久久中文字幕 | 日韩网站在线观看 | 日韩精品一区二区三区丰满 | 午夜精品久久久久 | 精品夜夜嗨av一区二区三区 | 欧美福利视频 | 精品久久久久久久久久久久久久久久久久 | 日日精品 | 国产日韩精品一区二区 | 久草在线91 | 精品视频97 | 日本不卡一区二区 | zzijzzij亚洲日本少妇熟睡 | 亚洲综合成人在线 | 日韩成人精品 | 久久国产精品视频观看 | 免费成人av电影 | 天天操天天操一操 | 91免费高清观看 | 青青草国产精品视频 | 亚洲欧美日韩在线看 | 成人av免费在线播放 | 久要激情网 | 国产精品国产三级国产aⅴ入口 | 99欧美视频 | 五月婷婷一级片 | 99精品电影 | 免费福利小视频 | 国产精品久久久久aaaa | 亚洲精品综合在线 | 私人av| 欧美日韩视频网站 | 九九免费精品视频在线观看 | 欧美日韩在线看 | 在线欧美小视频 | 成年人电影免费看 | 午夜婷婷网 | 国产精品永久久久久久久久久 | 国产1区2区3区精品美女 | 色婷婷综合久色 | 国产99黄| 久久综合免费视频 | 亚洲精品美女免费 | 久久久91精品国产一区二区精品 | 精品毛片在线 | 天天操天天弄 | 日韩在线观看一区 | 欧美最新大片在线看 | 一级一片免费观看 | 国产精品久久久久久久久久久久午夜片 | 亚洲2019精品 | 热久久这里只有精品 | 亚洲午夜在线视频 | 国产精品久久久久亚洲影视 | 天堂av免费观看 | 国模视频一区二区三区 | 日本一区二区三区视频在线播放 | 91香蕉视频好色先生 | 日韩专区视频 | 99视频在线精品国自产拍免费观看 | 国产成人一区三区 | www视频在线免费观看 | 精品免费视频123区 午夜久久成人 | 亚洲婷婷在线 | 色视频在线免费观看 | 精品国产一区二区三区在线观看 | 国产精品久久嫩一区二区免费 | 午夜精品一区二区三区在线视频 | 在线免费观看麻豆视频 | 久久99网| 国产福利一区二区三区视频 | 在线观看视频一区二区三区 | 超碰在线97观看 | 美女在线免费观看视频 | 亚洲视频综合 | 91精品视屏 | 毛片基地黄久久久久久天堂 | 亚洲色综合 | 91av在线免费观看 | 91视频免费| 五月婷婷六月丁香激情 | 狠狠搞,com | 免费三级黄色片 | 国产啊v在线观看 | 亚洲精品乱码久久久久久写真 | 娇妻呻吟一区二区三区 | 天天天干| 欧美福利片在线观看 | 成人激情开心网 | 最近中文字幕 | 婷婷六月丁香激情 | 毛片久久久 | 日韩av电影中文字幕在线观看 | 久人人 | 女人18毛片90分钟 | 国产午夜三级一二三区 | 成年人免费看片网站 | 中文字幕亚洲综合久久五月天色无吗'' | 天天爽夜夜爽精品视频婷婷 | 欧美小视频在线 | 黄色三级在线看 | 久久久国产精品人人片99精片欧美一 | 一区二区三区观看 | 国产一二区在线观看 | 4438全国亚洲精品观看视频 | 美女视频黄频大全免费 | 国内成人av | 亚洲免费精品视频 | 人人干人人干人人干 | 成人动态视频 | 午夜精品久久久久久久久久久久 | 99久久久久久久久 | 蜜臀精品久久久久久蜜臀 | 中国一区二区视频 | 国产日韩在线播放 | 99re8这里有精品热视频免费 | 一区二区不卡视频在线观看 | 亚洲专区路线二 | 国产免费一区二区三区网站免费 | 亚洲成人午夜av | 亚洲一区二区三区毛片 | 午夜精品剧场 | 精品一区二区免费 | 成人一级视频在线观看 | 亚洲视频2 | 久久久国产精品一区二区中文 | 欧美调教网站 | 激情在线网站 | 国产精品99蜜臀久久不卡二区 | 亚洲天堂社区 | av中文字幕剧情 | 99久久夜色精品国产亚洲 | 亚洲少妇天堂 | www.久久免费 | 夜夜摸夜夜爽 | av女优中文字幕在线观看 | 97久久久免费福利网址 | 91精品在线视频观看 | 国产精品 999| 欧美在线一级片 | 91av原创 | 久久免费激情视频 | 91av在| 国产日韩欧美在线看 | 日韩成片 | 日日夜夜免费精品 | 国产精品黄 | 干干夜夜| 亚洲精品乱码久久久久久写真 | 激情视频91| 日韩乱码在线 | 中文字幕在线观看不卡 | 日韩一二三在线 | 久久精品视频在线观看 | 九九在线视频免费观看 | 81国产精品久久久久久久久久 | 国产一级电影 | av电影 一区二区 | 国产精品96久久久久久吹潮 | 日韩一区二区三区视频在线 | 中文字幕av在线电影 | 久草网在线观看 | 一区二区三区高清在线 | 久久综合狠狠综合 | 欧美少妇18p| 国产91精品一区二区麻豆亚洲 | 午夜久久久久 | 在线观看 亚洲 | 精品超碰| 在线观看免费一区 | 天天干,天天草 | 69国产精品成人在线播放 | 亚洲自拍av在线 | 91av原创 | 97视频亚洲 | 日韩av专区| 最近高清中文字幕在线国语5 | 久久这里只有精品久久 | www.天天干.com| 天天综合五月天 | 日韩伦理片一区二区三区 | 欧美一级片在线 | 日韩av在线一区二区 | 亚洲日韩中文字幕在线播放 | 久久香蕉影视 | 中文亚洲欧美日韩 | 亚洲精品视频中文字幕 | 97超碰国产精品女人人人爽 | 成人 亚洲 欧美 | 中文字幕av网站 | 婷婷丁香色| 日本二区三区在线 | 青青射| 久久久久久不卡 | 色搞搞 | 91一区二区在线 | 在线之家官网 | 日本黄色免费电影网站 | 国产精品综合av一区二区国产馆 | 玖玖爱在线观看 | 亚洲蜜桃在线 | 国产精品成人国产乱 | 日韩簧片在线观看 | 午夜精品久久久 | 久久综合狠狠综合久久狠狠色综合 | 日本在线精品视频 | 久久久久成人免费 | 国色天香第二季 | 私人av | 欧美一级久久 | 日韩美精品视频 | 天天翘av| 精品国产一区二区三区久久影院 | 爱情影院aqdy鲁丝片二区 | 久久这里只有精品1 | 97精品视频在线播放 | www.天天色.com| 亚洲天堂网在线视频 | 免费色黄| 免费在线h| 中文字幕资源在线观看 | 波多野结衣视频一区二区三区 | 国产一级片在线播放 | 日韩乱码中文字幕 | 日本中文字幕网址 | 射射射av | 久久久成人精品 | 久草在线一免费新视频 | 久久国产精品视频 | 亚洲在线视频免费观看 | 日韩欧美精品免费 | 国产精品久久久久久久久蜜臀 | 中文字幕第一页在线视频 | 免费在线观看日韩 | 综合久久综合久久 | .国产精品成人自产拍在线观看6 | 欧美伦理一区 | 成人高清在线 | 欧美三级高清 | 欧美激情一区不卡 | 亚洲国产资源 | 色在线免费观看 | 国产专区在线 | 在线综合 亚洲 欧美在线视频 | 丁香高清视频在线看看 | 国内精品久久久久国产 | 狠狠色丁香久久婷婷综合丁香 | 亚洲国产999 | 国产精品高 | 亚洲精品国偷拍自产在线观看蜜桃 | 五月婷婷色 | 日韩精品最新在线观看 | 亚洲免费资源 | 欧美日韩在线精品一区二区 | 亚洲专区欧美专区 | 999精品| 久久一区二区三区国产精品 | 亚洲精品美女在线观看 | 午夜视频不卡 | 久久人人爽爽 | 中文字幕资源网 | 久久久激情网 | 婷婷色在线资源 | 中文字幕韩在线第一页 | 天天天天天天天天操 | 久久精品久久久久久久 | 色噜噜在线观看视频 | 天天天综合网 | 亚洲va欧美va人人爽春色影视 | 久久精品亚洲国产 | 国产成人在线播放 | 国产 精品 资源 | 区一区二区三在线观看 | 亚洲精品1234区 | 91久久丝袜国产露脸动漫 | 狠狠狠狠狠狠 | 黄色网址av | 日韩精品播放 | 免费看的黄色的网站 | 91精品对白一区国产伦 | 国际精品网 | 国产香蕉在线 | 免费三及片 | 亚洲精品资源在线 | 久草精品在线播放 | 成人av免费在线 | 国产高清日韩 | 日日碰狠狠添天天爽超碰97久久 | 欧美在线你懂的 | 欧美精品免费一区二区 | 久草在线视频在线观看 | 超碰资源在线 | 蜜臀一区二区三区精品免费视频 | 久久免费观看少妇a级毛片 久久久久成人免费 | 亚洲精品乱码久久久久久9色 | 欧美 亚洲 另类 激情 另类 | 亚洲精品视频在线观看免费视频 | 在线视频观看国产 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 97超碰免费| 婷婷中文字幕在线观看 | 国产免费观看高清完整版 | av福利电影 | 成人av在线一区二区 | 欧洲一区二区在线观看 | 亚洲激情在线观看 | 人人擦 | 99产精品成人啪免费网站 | 九九综合久久 | 久久久精品国产一区二区电影四季 | 69久久99精品久久久久婷婷 | 国产精品24小时在线观看 | 福利视频在线看 | 在线电影 一区 | 国产黄色片久久 | 草久视频在线观看 | 亚洲人成在线观看 | 欧洲av不卡 | 亚洲视频精品 | 国产成人久久av免费高清密臂 | 精品亚洲免费 | 欧美日韩在线视频免费 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 日韩网站一区 | 日韩黄色一区 | 成人久久18免费网站图片 | 香蕉网在线观看 | 在线观看视频一区二区三区 | 伊人色综合久久天天 | 日本高清中文字幕有码在线 | 天堂av在线免费 | 久精品视频在线观看 | 五月天婷亚洲天综合网精品偷 | 麻豆视频入口 | 狠狠色丁香婷婷综合久小说久 | 在线免费高清一区二区三区 | 九九免费精品视频 | 国产午夜精品视频 | 97视频中文字幕 | 天天躁日日躁狠狠躁av麻豆 | 久久福利小视频 | www.日韩免费 | 亚洲精品综合一二三区在线观看 | 九九热视频在线播放 | 久久国产精品99精国产 | 午夜美女视频 | 欧美日韩免费观看一区=区三区 | 97成人在线免费视频 | 久久黄色网址 | 日韩在线视频网址 | 一本到在线 | 顶级bbw搡bbbb搡bbbb | 特黄特色特刺激视频免费播放 | 日韩在线免费电影 | av亚洲产国偷v产偷v自拍小说 | 国产精品二区在线观看 | 伊人www22综合色 | 国产不卡在线观看视频 | 狠狠干在线| 福利视频导航网址 | 成人va在线观看 | 日韩精品视频一二三 | 精品在线观看一区二区三区 | 国产精品久久久久9999吃药 | 免费av影视 | 亚洲理论在线观看电影 | 欧美日韩精品二区第二页 | 国产在线一区观看 | 黄p网站在线观看 | 国产在线中文字幕 | 福利一区视频 | 91桃色免费视频 | 日韩免费在线观看 | 91久草视频 | 在线av资源| 亚洲一级二级三级 | 久久久精品国产一区二区电影四季 | 久久久国产精品麻豆 | 欧美一级片免费播放 | 九九有精品 | 成人中文字幕在线观看 | 91精品在线看 | 深爱激情亚洲 | 麻豆小视频在线观看 | 91久久国产自产拍夜夜嗨 | 在线观看免费成人av | 日韩系列 | 国产精品99久久久久久久久久久久 | 天天av天天 | 在线播放国产一区二区三区 | 中文在线a∨在线 | 国产 日韩 欧美 中文 在线播放 | 婷婷黄色片 | 成人资源在线观看 | 丁香六月婷婷开心 | 午夜影院先| 亚洲国产99 | 久久久久亚洲精品中文字幕 | 欧美在线观看视频 | 国产不卡免费av | 波多野结衣综合网 | 日韩精品专区在线影院重磅 | 美女网站在线看 | 亚洲精品玖玖玖av在线看 | 日韩精品国产一区 | 国产精品岛国久久久久久久久红粉 | 亚洲最新视频在线播放 | 999成人| 欧美韩日视频 | 在线播放日韩av | 久久亚洲影视 | 精品一区二区在线免费观看 | 玖玖玖在线 | www日| 99 视频 高清 | 日韩高清不卡一区二区三区 | 天天搞夜夜骑 | 在线亚洲天堂网 | 久久久国产精品视频 | 国产在线a不卡 | 91禁在线看 | 色丁香婷婷 | 中文在线www| 亚洲精品美女在线观看播放 | 91天天视频| 欧美极品少妇xbxb性爽爽视频 | 久久久久美女 | 婷婷综合国产 | 最新久久久 | 国产最新精品视频 | 国产aaa免费视频 | 中文字幕在线观看av | 久久精品高清视频 | 久久久久免费精品国产小说色大师 | 精品在线观看视频 | 九九免费在线观看视频 | 六月丁香综合网 | 欧洲一区精品 | 国产一区91 | 精品久久精品 | 日韩三级在线观看 | 91精品国产欧美一区二区 | 久久久久久久亚洲精品 | 婷婷久久网| 亚洲国产美女精品久久久久∴ | 99免费在线播放99久久免费 | 96亚洲精品久久久蜜桃 | 亚洲一区二区观看 | 久草| 色插综合 | 黄色av电影| 福利电影久久 | 国产精品久久久久久久久大全 | 日韩av影视在线 | 日韩a欧美| 99在线精品免费视频九九视 | 欧美日韩一区二区三区免费视频 | 免费高清在线一区 | 91av原创| 精品福利视频在线 | 精品久久久久久国产偷窥 | 亚洲综合网 | 手机成人在线 | 99久久网站 | 欧美福利视频 | 99国产情侣在线播放 | 麻豆传媒在线免费看 | 亚洲日本中文字幕在线观看 | 日韩高清av | 天堂av在线网站 | 午夜精品一区二区三区免费 | 国产成人精品一区一区一区 | 国产一级片观看 | 欧美性色综合网站 | 精品乱码一区二区三四区 | 日日爽天天爽 | av在线网站观看 | 欧美 日韩 性 | 久久精品人人做人人综合老师 | 久草在线久 | 日本在线观看中文字幕无线观看 | 日韩视频在线观看视频 | 午夜精品一区二区国产 | 中文字幕在 | 97超碰色 | 国产精品一区二区电影 | 日韩大片在线免费观看 | 乱男乱女www7788 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产精品初高中精品久久 | 日本视频不卡 | www夜夜| 99精品乱码国产在线观看 | 国产精品毛片一区 | 五月激情视频 | 人人干人人做 | 久久久久久久网站 | 手机av在线不卡 | 国内偷拍精品视频 | 婷久久| 国产一级电影在线 | www.亚洲精品在线 | 99精品视频观看 | 国产精品美女久久 | 91看国产| 成年人电影免费看 | 国产中文字幕免费 | 很黄很色很污的网站 | 亚洲成人第一区 | 国产h在线观看 | 欧美成人性战久久 | 久久精品99国产精品日本 | 色在线网| 91久久久久久久 | 麻花豆传媒一二三产区 | 午夜精品一区二区三区在线视频 | 999久久| 国产亚洲精品成人av久久ww | 一区二精品 | 久久精品99国产精品亚洲最刺激 | 欧美性粗大hdvideo | 日韩爱爱片 | 99精品免费久久久久久日本 | 中文字幕视频一区二区 | 亚洲国产精品电影在线观看 | 亚洲视频在线视频 | 久久 国产一区 | 99麻豆视频 | av在线收看 | 蜜桃av观看 | 久久精品这里都是精品 | 免费97视频 | www欧美xxxx | 日日爱网站| 精品国产综合区久久久久久 | 六月婷婷色 | 日韩专区av| 久久精品成人热国产成 | 天天操网址 | 麻豆免费看片 | 成人av手机在线 | 狠狠的干 | 日韩精品字幕 | 91看片淫黄大片91 | 99色| 中文久草 | 97av在线 | 久久久久女教师免费一区 | 一区二区三区在线不卡 | 婷婷视频在线播放 | 日韩精品久久久久久中文字幕8 | 狠狠操欧美 | 人人插人人做 | 狠狠网站| 久青草视频在线观看 | 在线观看亚洲电影 | 亚洲乱亚洲乱妇 | 福利视频一二区 | 中文字幕国语官网在线视频 | 亚洲免费成人 | 久久久久久久毛片 | 亚洲精品视频在线观看免费 | 九九在线高清精品视频 | 一区二区视频在线看 | 午夜手机电影 | www夜夜操 | 国产一区二区精品久久 | 精品在线亚洲视频 | 国产精品久久久久av | 99精品视频在线 | 黄色av网站在线观看免费 | 久在线观看视频 | 久久在线精品视频 | 97超碰中文字幕 | 久草 |