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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何获取注解中的值_如何在运行时利用注解信息

發布時間:2023/12/1 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何获取注解中的值_如何在运行时利用注解信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注解( annontation )是 Java 1.5 之后引入的一個為程序添加元數據的功能。注解本身并不是魔法,只是在代碼里添加了描述代碼自身的信息,至于如何理解和使用這些信息,則需要專門的解析代碼來負責。

本文首先介紹注解的基本知識,包括注解的分類和運用時的領域知識。隨后,給出一個通過的在運行時解析注解的框架代碼,介紹處理注解的一般思路。最后,通過現實世界里使用注解的例子,來加深對注解的實用性方面的認識。

注解的基本知識

注解作為程序中的元數據,其本身的性質也被其上的注解所描述。

剛剛我們提到,理解和使用注解信息,需要專門的解析代碼。其中,Java 的編譯器和虛擬機也包含解析注解信息的邏輯,而它們判斷一個注解的性質,就是依賴注解之上的元注解。

能夠注解一個注解的注解就是元注解,Java 本身能夠識別的元注解有以下幾個。

@Retention

Retention 注解的相關定義如下

@Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATION_TYPE) public @interface Retention {RetentionPolicy value(); }public enum RetentionPolicy {SOURCE,CLASS,RUNTIME }

首先我們看到它自己也被幾個元注解包括自身所注解,因此在注解的源頭有一個類似于自舉的概念,最終觸發自舉的是編譯器和源代碼中的先驗知識。

再看到 Retention 注解的值,是一個注解保留性質的枚舉,包括三種情況。

  • SOURCE 表示注解信息僅在編譯時保留,在編譯之后就被丟棄,這樣的注解為代碼的編譯提供原信息。例如常用的 @Override 注解就提示 Java 編譯器進行重寫方法的檢查。
  • CLASS 表示注解信息保留在字節碼中,但在運行時不可見。這是注解的默認行為,如果定義注解時沒有使用 Retention 注解顯式表明保留性質,默認的保留性質就是這個。
  • RUNTIME 表示注解信息在運行時可見,當然,也就必須保留在字節碼中。
  • SOURCE 標注的注解通常稱為編譯期注解,Lombok 項目提供大量的編譯期注解,以幫助開發者簡寫自己的代碼。例如 @Setter 注解注解在類上時,在編譯期由 Lombok 的注解處理器處理,為被注解的類的每一個字段生成 Setter 方法。

    編譯期的注解需要專門的注解處理器來處理,并且在編譯時指定處理器的名字提示編譯期使用該處理器進行處理。技術上說,編譯期處理注解和運行時處理注解完全是兩個概念的事情。本文主要介紹運行時處理注解的技術,關于編譯期處理注解的資料,可以參考這篇 ANNOTATION PROCESSING 101 的文章以及 Lombok 的源碼。

    CLASS 性質雖然是默認的保留性質,但實際使用中幾乎沒有采用這一保留性質的。準確需要這一性質的情形應該是某些專門的字節碼處理框架,大多數時候使用這一性質的注解僅僅是在編譯期使用,使用 SOURCE 足以,且使用 SOURCE 還可以減少字節碼文件的大小。

    本文介紹運行時處理注解的技術,所有在運行時可見的注解都需要顯式地標注 @Retention(RetentionPolicy.RUNTIME) 注解。CLASS 和 RUNTIME 性質的注解都會出現在字節碼中。編譯器將注解信息寫成字節碼時,通過為 CLASS 性質的注解賦予 RuntimeInvisibleAnnotations 屬性,為 RUNTIME 性質的注解賦予 RuntimeVisibleParameterAnnotations 來提示虛擬機在運行時加載的時候區別對待。

    運行時,我們可以調用被注解對象的相應方法取得其上的注解,具體手段在【注解解析的框架代碼】一節中介紹。

    @Target

    上一節最后我們提到,注解有不同的注解對象,這正是 Target 注解加入的元數據,其定義如下

    @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATION_TYPE) public @interface Target {ElementType[] value(); }public enum ElementType {TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE,ANNOTATION_TYPE,PACKAGE,TYPE_PARAMETER,TYPE_USE,MODULE }

    Target 元注解的信息解釋了一個注解能夠被注解在什么位置上,或者說能夠接受該注解的對象集合。一個注解可以有多種類型的注解對象,所有這些對象類型存在 ElementType 枚舉中。

    大多數枚舉值的含義就是字面含義,值得一提的取值包括

    • TYPE 在 Java 中指類、接口、注解或者枚舉類
    • TYPE_PARAMETER 在 Java 1.8 中被引入,指的是泛型中的類型參數
    • TYPE_USE 在 Java 1.8 中被引入,指的是所有可以出現類型的位置,具體參考 Java 語言標準的對應章節

    常見的 Override 注解只能注解在方法上,Spring 框架中的 Component 注解只能注解在類型上。SuppressWarnings 注解能注解在除了本地變量和類型參數以外的幾乎所有地方,Spring 框架中的 Autowired 注解也能注解在字段、構造器、方法參數和注解等多種位置上。

    @Inherited

    Inherited 主要用來標注注解在類繼承關系之間的傳遞關系。它本身不攜帶自定義信息,僅作為一個布爾信息存在,即是或者不是 Inherited 的注解。

    標注 Inherited 元注解的注解,標注在某個類型上時,其子類也默認視為標注此注解。或者換個方向說,獲取某個類的注解時,會遞歸的搜索其父類的注解,并獲取其中標注 Inherited 元注解的注解。注意,標注 Inherited 元注解的注解在子類上也標注時,子類上的注解優先級最高。

    技術上說,可以通過 getAnnotations 和 getDeclaredAnnotations 的區別來獲取確切標注在當前類型上的注解和按照上面描述的方法查找的注解。另一個值得強調的是這種繼承僅發生在類的繼承上,實現接口并不會導致標注 Inherited 元注解的注解的傳遞。

    值得注意的是,注解本身是不能繼承的。為了實現類似繼承的效果,開發者們從基于原型的繼承找到靈感,采用本節后續將講到的組合注解技術來達到注解繼承的目的。

    @Repeatable

    Repeatable 注解在 Java 1.8 中被引入,主要是為了解決相同的注解只能出現一次的情況下,為了表達實際中需要的相同注解被標注多次的邏輯,開發者不得不首先創建出一個容器注解,然后使用者在單個和多個注解的情況下分別使用基礎注解和容器注解的繁瑣邏輯。具體例子如下

    @ComponentScan(basePackages = "my.package") class MySimpleConfig { }@ComponentScans({ @ComponentScan(basePackages = "my.package") @ComponentScan(basePackages = "my.another.package") }) class MyCompositeConfig { }

    有了 Repeatable 注解,從注解處理方,代碼不會精簡,仍然需要分開處理兩種注解類型,但是使用方就可以精簡代碼。例如上面 MyCompositeConfig 的標注可以變為

    @ComponentScan(basePackages = "my.package") @ComponentScan(basePackages = "my.another.package") class MyCompositeConfig { }

    對應的注解定義為

    @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented @Repeatable(ComponentScans.class) public @interface ComponentScan {// ... }@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented public @interface ComponentScans {ComponentScan[] value(); }

    對于注解的處理方,重復注解會在背后由 Java 編譯器轉化為容器注解的形式傳遞。就上面的例子而言,無論有沒有 Repeatable 注解,MyCompositeConfig 在獲取注解時,都會獲取到 ComponentScans 注解及其 ComponentScan[] 形式的元數據信息。

    值得注意的是,重復注解和容器注解不能同時存在,即在標記了 @Repeatable(ComponentScans.class) 之后,ComponentScans 和 ComponentScan 不能同時標注同一個對象。

    @Documented

    這個注解沒有太多好說的,注解信息在生成文檔時默認是不會留存的。如果使用此注解標注某個注解,那么被標注的注解注解的對象的文檔會顯示它被對應的注解所標注。

    組合注解

    嚴格來說,組合注解是一種設計模式而不是語言特性。

    由于注解無法繼承,例如 Spring 框架中具有 "is-a" 關系的 Service 注解和 Component 注解,無法通過繼承將 Service 定義為 Component 的特例。但是在實際使用的時候,又確實有表達這樣 "is-a" 關系的需求。

    在框架代碼中,無法窮盡對下游項目擴展注解實質上的繼承關系的情況,但是又需要支持下游項目自定義框架注解的擴展。如何將下游項目自定義的注解和框架注解之間的繼承關系表達出來,就是一個技術上實際的需求。

    為了解決這個問題,開發者們注意到在注解設計之初,留下了注解能夠標注注解的路徑。這一路徑使得我們可以采用一種類似基于原型的繼承的方式,通過遞歸獲取注解上的注解來追溯注解的鏈條,從而類似原型鏈上找父類的方式找到當前注解邏輯上繼承的注解。

    這一技術在 Spring 框架中被廣泛使用,例如 Service/Repository/Controller 等注解組合了 Component 注解,從而在下一節的注解解析的框架代碼中能夠作為 Component 的某種意義上的子注解被識別,同時在需要時取出繼承的注解的元數據信息。

    注解解析的框架代碼

    Java 語言提供的方法

    注解解析最基礎的手段是通過 Java 語言本身提供的方法。哪怕是其他框架增強注解解析的功能,最終也需要依賴基本方法的支持。

    運行時獲取注解信息,可想而知是通過反射的手段來獲取的。Java 為被注解的元素定義了一個 AnnotatedElement 的接口,通過這一接口的方法可以在運行時取得被注解元素之上的注解。該接口的實現類是運行時通過反射拿到的元素里面能夠被注解的類。

    我們先看到這一接口提供的方法。

    public interface AnnotatedElement {<T extends Annotation> T getAnnotation(Class<T> annotationClass);Annotation[] getAnnotations();<T extends Annotation> T getDeclaredAnnotation(Class<T> annotationClass);Annotation[] getDeclaredAnnotations();<T extends Annotation> T[] getAnnotationsByType(Class<T> annotationClass);<T extends Annotation> T[] getDeclaredAnnotationsByType(Class<T> annotationClass);boolean isAnnotationPresent(Class<? extends Annotation> annotationClass); }

    這些方法沒必要一個一個講,其實可以簡單地分成兩類

    • 獲取被注解對象上聲明的注解,即 getDeclaredAnnotations 系列的方法
    • 獲取被注解對象所擁有的注解,即 getAnnotations 系列的方法,比起上一類,額外包括 @Inherited 的注解

    最后 isAnnotationPresent 方法僅僅是一個判斷標簽式注解的簡易方法,內容只有一行。

    default boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) {return getAnnotation(annotationClass) != null; }

    我們可以通過 Java 語言自身的 AnnotationSupport#getIndirectlyPresent 方法來看看怎么用這套基礎支持解析注解。

    private static <A extends Annotation> A[] getIndirectlyPresent(Map<Class<? extends Annotation>, Annotation> annotations,Class<A> annoClass ) {Repeatable repeatable = annoClass.getDeclaredAnnotation(Repeatable.class);if (repeatable == null)return null; // Not repeatable -> no indirectly present annotationsClass<? extends Annotation> containerClass = repeatable.value();Annotation container = annotations.get(containerClass);if (container == null)return null;// Unpack containerA[] valueArray = getValueArray(container);checkTypes(valueArray, container, annoClass);return valueArray; }

    以上這段代碼是在 Java 1.8 引入 Repeatable 注解后,由于默認的會將重復的 Repeatable 的注解在獲取時直接合并成容器注解,為了提供一個方便的按照基礎注解來獲取注解信息的手段提供的方法。

    我們看到,傳入的內容包括一個根據 Class 對象查找實現類對象的映射,這個是被注解類所取得的所擁有的注解的類到實例的字典,不用過多關注。另一方面 annoClass 則是我們想要獲取的基礎注解的類。

    例如,annoClass 為上面提過的 Spring 的 ComponentScan 類,對于僅注解了 ComponentScans 的類來說,以 ComponentScan.class 作為參數調用 getDeclaredAnnotationsByType 方法一路走到上面這個方法里,代碼邏輯將會看到 ComponentScan 標注了 @Repeatable(ComponentScans.class) 注解,從而在 annotations 映射里查找 ComponentScans 注解的信息,并將它轉換為 ComponentScan 的數組返回。

    Spring 解析注解的方案

    Spring 解析注解的核心是 MergedAnnotation 接口及相關的工具類。

    Spring 框架重度使用了注解來簡化開發的復雜度。對于具體的某一個或某幾個注解,圍繞它展開的代碼散布在其邏輯鏈條的各處。但是,Spring 的注解處理的特別之處就在于它定義了 MergedAnnotation 接口,并支持了基于組合注解和 AliasFor 的注解增強機制。

    AliasFor 注解的解析非常簡單,就是查看當前注解或者 targetAnnotation 注解里面相應名稱的注解。在 5.2.7.RELEASE 版本中,其解析邏輯基本在 AnnotationTypeMapping#resolveAliasTarget 方法里,最終組裝出來的 AnnotationTypeMapping 對象能夠在獲取屬性值的時候顯示處理了 AliasFor 之后的屬性值。

    下面我們展開說一下如何遞歸解析組合注解。

    為了支持前面提到的組合注解,即注解上的注解的遞歸查找,Spring 中提供了 AnnotationUtils#findAnnotation 系列方法來做查詢,區別于 AnnotationUtils#getAnnotation 的單層查找。

    Spring 對這個查找邏輯的演化花了很多心思。

    在最新的 Spring 5.2.7.RELEASE 版本中,這兩個方法都對 AnnotatedElement 構造了 MergedAnnotation 實例,在最終查找的時候通過不同的謂詞策略來做篩選。構造 MergedAnnotation 實例的過程經由幾個工廠函數之后構造出一個 TypeMappedAnnotations 的實例,調用其上的 get 方法構造出實際的 MergedAnnotation 對象,這個對象就是對要查找的注解遞歸查找的結果。

    相關邏輯為了定制各種策略變得非常復雜,我們從 4.3.8.RELEASE 版本入手,查看在復雜的定制引入之前,這一查找過程核心邏輯的實現框架。

    Annotation[] anns = clazz.getDeclaredAnnotations(); for (Annotation ann : anns) {if (ann.annotationType() == annotationType) {return (A) ann;} } for (Annotation ann : anns) {if (!isInJavaLangAnnotationPackage(ann) && visited.add(ann)) {A annotation = findAnnotation(ann.annotationType(), annotationType, visited);if (annotation != null) {return annotation;}} }

    無論后期代碼演化得再復雜,其核心還是一個遞歸查找的過程,也就是以上的代碼。

  • 首先,獲取當前的類上的注解,注意這里的類可以是一個注解類,如果此次獲取的注解就包含了我們要查找的注解,那么直接返回。
  • 如果沒有包含,對剛才取得的注解遞歸的查找。注意這里有一個類似于深度優先搜索的 visited 集合。這是因為有些注解可以以自己為目標,導致出現遞歸查找的自環。典型的例如 Java 自帶的元注解 Retention 也被自己所注解。
  • 如果深度優先搜索窮盡之后沒有得到結果,則返回空。
  • 可以看到,上面的邏輯中對 Repeatable 和 Inherited 等元注解的復雜組合情況沒有定制的邏輯,而是采用了一些默認的硬編碼策略。

    最新版本的 Spring 之所以變得相當復雜,有一部分代碼量是為了解決搜索的不同策略以及跟進新版 Java 的注解特性。另一部分,注意到上述邏輯在獲取注解時沒有關心 AliasFor 注解的邏輯,在早期版本中這是由 AnnotationUtils 中的一個全局靜態映射來管理的。在最新版本中,產生 MergedAnnotation 時將構造并維護一個本地的 alias 映射。

    現實世界的注解解析

    上一節介紹了處理注解的兩個通用套路,背后的思想是基礎的注解信息獲取和遞歸的注解信息獲取。本節我們將從現實世界的注解解析入手,介紹實際項目里面特定的注解是如何被解析的。

    Flink

    @RpcTimeout

    Flink 采用類似 RMI 的方式來進行遠程調用,為了避免無限阻塞,方法調用時可以傳遞一個超時參數。本地攔截遠端調用的動作時,從方法的簽名中反射取得標注 RpcTimeout 的參數,將它作為超時參數傳遞到實際的方法調用過程中,以在超過限定時間時返回超時異常而非阻塞等待遠端調用的返回。

    取得標注 RpcTimeout 的參數的邏輯代碼展開如下

    final Annotation[][] parameterAnnotations = method.getParameterAnnotations();for (int i = 0; i < parameterAnnotations.length; i++) {for (Annotation annotation : parameterAnnotations[i]) {if (annotation.annotationType().equals(RpcTimeout.class)) {if (args[i] instanceof Time) {return (Time) args[i];} else {throw new RuntimeException(/* ... */)}}} }return defaultTimeout;

    可以看到,是針對先驗知識能得知的可能出現該注解的位置進行遍歷獲取。其實,所有的注解解析代碼都遵循這樣的模式,這也是最基礎的模式。

    JUnit 4

    @Test

    JUnit 4 測試框架的用戶最熟悉的就是 Test 注解了。不同于上一節提到的基礎解析和遞歸解析,JUnit 4 的 Test 注解有一個特殊的場景需要支持,即在獲取當前類的所有待測試方法時,獲取到父類中的 Test 標注的方法。

    這是因為我們常常把相似的測試的配置和基礎測試方法抽成抽象基類,在根據不同的實現場景實現不同的測試子類。雖然類似的功能可以用 Parameterized Runner 和 Parameter 注解來實現,但是 Parameter 的方案只能支持參數化字段,如果測試方法是有和沒有的區別而不是參數的不同,子類是比使用 Parameter 向量并加入 Enable 開關更好的解決方案。

    總之,JUnit 4 支持查找父類中標注 Test 的其他方法,此邏輯實現如下。

    // TestClass#scanAnnotatedMembers for (Class<?> eachClass : getSuperClasses(clazz)) {for (Method eachMethod : MethodSorter.getDeclaredMethods(eachClass)) {addToAnnotationLists(new FrameworkMethod(eachMethod), methodsForAnnotations);}// ensuring fields are sorted to make sure that entries are inserted// and read from fieldForAnnotations in a deterministic orderfor (Field eachField : getSortedDeclaredFields(eachClass)) {addToAnnotationLists(new FrameworkField(eachField), fieldsForAnnotations);} }// TestClass#addToAnnotationLists for (Annotation each : member.getAnnotations()) {Class<? extends Annotation> type = each.annotationType();List<T> members = getAnnotatedMembers(map, type, true);T memberToAdd = member.handlePossibleBridgeMethod(members);if (memberToAdd == null) {return;}if (runsTopToBottom(type)) {members.add(0, memberToAdd);} else {members.add(memberToAdd);} }

    其實也很簡單,在初始化 TestClass 時遍歷測試的候選類及其父類的所有方法和字段,將它們的注解信息存在一個注解類型到被注解對象的列表的映射中。后續需要查找的時候從該映射查找,即可查找到標注對應注解的所有方法或字段。

    @RunWith

    另一個常見的注解是 RunWith 注解,用于標注運行測試時采用自定義的 Runner 實現。其代碼如下

    for (Class<?> currentTestClass = testClass; currentTestClass != null;currentTestClass = getEnclosingClassForNonStaticMemberClass(currentTestClass)) {RunWith annotation = currentTestClass.getAnnotation(RunWith.class);if (annotation != null) {return buildRunner(annotation.value(), testClass);} }

    可以看到,是從內到外層層查找的形式。注意這里沒有去查找父類的 RunWith 注解,這是由于 RunWith 注解本身被 @Inherited 所標注,調用 Java 提供的基礎方法獲取類的注解時已經做了相應的處理。

    Spring

    @SpringBootApplication

    SpringBootApplication 可以說是最好的解釋 Spring 中重度使用組合注解的例子了。對于這一注解的解析,我們甚至不需要或者說不能列舉出任何解析代碼,因為 SpringBootApplication 從來沒有作為它自己被解析。該注解的定義如下

    @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication {@AliasFor(annotation = EnableAutoConfiguration.class)Class<?>[] exclude() default {};@AliasFor(annotation = EnableAutoConfiguration.class)String[] excludeName() default {};@AliasFor(annotation = ComponentScan.class, attribute = "basePackages")String[] scanBasePackages() default {};@AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")Class<?>[] scanBasePackageClasses() default {};@AliasFor(annotation = ComponentScan.class, attribute = "nameGenerator")Class<? extends BeanNameGenerator> nameGenerator() default BeanNameGenerator.class;@AliasFor(annotation = Configuration.class)boolean proxyBeanMethods() default true; }

    這里有兩件事情值得關注,分別對應介紹 Spring 的注解解析框架的時候指出的 Spring 的兩個關鍵的增強

  • 實際使用 SpringBootApplication 時,Spring 框架的解析代碼是通過 findAnnotation 查找其組合的注解來實現具體功能的。
  • SpringBootApplication 通過 AliasFor 支持用戶在使用該注解時覆蓋其所組合的注解的屬性。
  • 從這里我們也看出,組合注解僅僅是一種形式上相關聯的組合,與任一形式的繼承不同,不會以某種形式繼承屬性。

    @Autowired

    Autowired 可以說是 Spring 框架中使用最為廣泛的注解之一了,它和 Value 注解以及 JSR-330 的 Inject 注解一起組成了注入 Bean 的核心手段。

    Autowired 的處理邏輯在 AutowiredAnnotationBeanPostProcessor 中,即 Bean 被創造和加載之后的一個后處理邏輯或者成為裝飾邏輯。其中涉及到 Autowired 等注解的地方主要是篩選出需要為目標注入 Bean 的候選。

    首先,在初始化的時候,會將對應的 Autowired 系列注解保存到 autowiredAnnotationTypes 集合字段中。

    隨后,當 Bean 處理框架調用后處理邏輯時,調用后處理器的 findAutowiringMetadata 方法,通過標記型注解找到需要 Autowired 的候選。整個過程通過反射將被 Autowired 注解的對象及 Autowired 注解中持有的是否必須( required )的信息保存到 InjectElement 中。

    再之后,對獲取到的所有 InjectElement 調用 inject 方法進行注入。根據不同的被注入對象,注入的邏輯有所不同。例如,對于字段的注入,由 AutowiredFieldElement 對象處理,從 BeanFactory 中根據依賴關系初始化 Bean 并將 Bean 賦值給字段。

    這一套邏輯支持了 Bean 注入最常用的字段注入的功能,以及運行配置方法的功能。

    Autowired 注解還能被用在參數和構造函數上,其中參數上的標注目前僅用于在 JUnit Jupiter 框架測試時使用,而構造函數的標注廣泛替代了直接標注字段的用法,其代碼路徑存在于 AbstractAutowireCapableBeanFactory 創建 Bean 實例的時候。從結果來說,標注在構造函數的 Autowired 能夠將參數對應類型的 Bean 作為構造函數的實參,調用構造函數以構造出對象。

    總結

    以上是生活随笔為你收集整理的如何获取注解中的值_如何在运行时利用注解信息的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产高清视频 | 国产精品免费高清 | 久久久久久久久久电影 | 狠狠狠狠狠色综合 | 国产亚洲精品久久久久久久久久 | 日韩大片免费观看 | 欧美极度另类 | 在线免费精品视频 | 福利一区在线视频 | 久久撸在线视频 | 91丨九色丨蝌蚪丰满 | www.久久免费视频 | 国产亚洲精品美女 | 伊人婷婷久久 | 亚洲黄色a | 久久精品欧美 | 免费男女羞羞的视频网站中文字幕 | 四川bbb搡bbb爽爽视频 | 亚州精品一二三区 | 国产精品视频地址 | 91亚洲在线观看 | 狠狠色免费 | 日本大片免费观看在线 | 丁香九月婷婷 | 91中文字幕在线观看 | 97偷拍在线视频 | 国产亚洲精品久久久久久 | 国产精品美女网站 | 国产午夜一级毛片 | 婷婷国产视频 | 五月天欧美精品 | 久久精品3 | 在线观看 亚洲 | 日日麻批40分钟视频免费观看 | 亚洲 成人 欧美 | 超碰在线天天 | 国产99久久久国产 | 国产一区电影在线观看 | 五月激情片| 欧美一级日韩免费不卡 | 亚洲精品国偷自产在线91正片 | 欧美日韩在线精品 | 综合色中文 | 91网址在线观看 | 国产精品亚洲片在线播放 | 91免费的视频在线播放 | 在线播放91 | 日日干日日操 | 人人插人人舔 | 99精品热视频 | 久久国产片 | 国产自偷自拍 | 手机av资源 | 国产无套一区二区三区久久 | 免费黄色av电影 | 91精品国产成人观看 | 一本到在线 | 97久久精品午夜一区二区 | 在线视频黄 | 狠狠色丁香婷婷综合橹88 | 久久三级视频 | 日本不卡一区二区三区在线观看 | 九色激情网 | 久草在线视频中文 | 日韩欧美一区二区三区视频 | 五月天婷婷免费视频 | 91九色丨porny丨丰满6 | 91 在线视频播放 | 在线看片91| 操操操人人 | 久久婷婷影视 | 国产97在线观看 | 99久久99久久精品国产片果冰 | 亚洲第一区在线观看 | 人人射人人爱 | 成人影视免费 | 久久中文欧美 | 天天视频色版 | 久久久18 | 日韩av不卡在线观看 | 国产精品自产拍 | 欧美激情综合五月色丁香 | 国产a国产a国产a | 97在线观看免费观看高清 | 青春草免费在线视频 | 亚洲国产成人精品在线观看 | 国产一卡二卡四卡国 | av一级网站 | 日韩欧美综合视频 | 99久久999久久久精玫瑰 | 日韩午夜精品 | 人人射人人插 | 国产96在线 | 综合铜03| 中文字幕二区 | 日本三级不卡 | 国产自产高清不卡 | 午夜精品久久久久久久99无限制 | 四虎在线影视 | 2023av在线| 狠狠躁天天躁 | 麻豆免费视频 | 日韩精品在线免费观看 | 中文字幕一区二区三 | 亚洲精品视频在线播放 | 精品久久免费看 | 中文字幕国产视频 | 亚洲欧美国产精品18p | 我要色综合天天 | 高清av免费一区中文字幕 | 国产r级在线观看 | 美女久久久久久久 | 欧美精品在线观看免费 | 欧美另类网站 | jizz欧美性9 国产一区高清在线观看 | 日本久久高清视频 | 最新中文在线视频 | 狠狠狠狠狠狠干 | av成人免费网站 | 91 在线视频 | 欧美日韩中文国产一区发布 | 国产一二三区在线观看 | 91av资源在线| 最近2019中文免费高清视频观看www99 | 五月综合在线观看 | 国产精品网址在线观看 | 国产97碰免费视频 | 少妇搡bbbb搡bbb搡69 | 九九久久久| 成人av网址大全 | 91看片在线观看 | 国产在线理论片 | 久久久久免费精品国产 | 在线看污网站 | 免费看的黄色的网站 | 99av国产精品欲麻豆 | 精品久久久久亚洲 | 蜜桃av观看 | 精品国产1区 | 天天做日日爱夜夜爽 | 99免在线观看免费视频高清 | 久久免费视频网站 | 免费观看的av | 日韩一区二区三区免费视频 | 天天天天干 | av免费网页 | 狠狠干天天 | 黄色成人免费电影 | 婷婷久月 | 色综合久久88色综合天天人守婷 | 日本久草电影 | 国产99久久九九精品免费 | 精品国产乱码一区二区三区在线 | 国产黄色av | 欧美国产日韩在线视频 | www激情com | 婷婷网五月天 | 亚洲精品国产成人 | 久久成| 欧美性高跟鞋xxxxhd | 成人va在线观看 | 国产麻豆视频 | 麻豆免费视频观看 | av不卡免费在线观看 | 精品在线观看视频 | 免费在线观看午夜视频 | 四川bbb搡bbb爽爽视频 | 色老板在线视频 | 少妇bbw揉bbb欧美 | 亚洲一区视频在线播放 | 中文字幕在线播放视频 | 国产91丝袜在线播放动漫 | 天天天天天天干 | 91污污视频在线观看 | 91精品视频免费在线观看 | 在线看国产视频 | 国内视频在线观看 | 性日韩欧美在线视频 | 西西www444| 西西www444 | 精品国产福利在线 | 香蕉精品视频在线观看 | 一区二区三区手机在线观看 | 天天干天天做天天操 | 亚洲1区在线 | 黄色成人av| 日本最新一区二区三区 | 日韩,精品电影 | 国产亚洲va综合人人澡精品 | 在线观看岛国 | 手机在线看片日韩 | 麻豆影视网 | 91精品久久久久久久久 | 免费久久99精品国产婷婷六月 | 四虎在线观看精品视频 | 国产精品乱码久久久 | 久久午夜视频 | 在线看成人片 | 国产欧美日韩视频 | 久久夜色精品国产欧美乱极品 | 麻豆成人精品 | 91视频三区| 欧美乱熟臀69xxxxxx | 成人网页在线免费观看 | 在线影院中文字幕 | 欧美特一级片 | 成人av网页 | 久久欧美精品 | 久草资源在线观看 | 日韩电影一区二区三区 | 99视频在线看 | 91视频久久久久 | 日韩视频免费 | 在线 国产一区 | 日韩精品中文字幕在线观看 | 亚洲色视频 | 外国av网| 91字幕 | 久久免费看视频 | 人人精久 | 91桃色在线观看视频 | 黄色av网站在线观看免费 | 中文字幕在线乱 | 亚洲欧美视频在线 | 97在线观看视频国产 | av再线观看 | www.在线观看av| 婷婷伊人综合 | 欧美亚洲专区 | 国产精品免费久久 | 在线观看久久久久久 | 中文字幕视频免费观看 | 国产精品午夜av | 超级碰碰碰免费视频 | www.夜夜操.com| www狠狠操 | 激情视频久久 | 久久成人福利 | 激情视频在线高清看 | 日韩免费 | 精品福利片 | www.五月天婷婷 | 久草在线精品观看 | 99热这里只有精品免费 | 亚洲精品在线二区 | 国产成人精品午夜在线播放 | 欧美日韩国产三级 | 激情欧美一区二区免费视频 | 在线国产能看的 | 亚洲视频免费 | 日韩精品无码一区二区三区 | 色综合天天狠天天透天天伊人 | 久久精品国产久精国产 | 国产精品成人自产拍在线观看 | 91日韩精品一区 | 久久久 激情 | 国产在线最新 | 国产一级片免费播放 | 91精品一区二区在线观看 | 97色在线视频 | 国产精品成人一区二区三区吃奶 | 天天色宗合 | 亚洲精品h | 精品一区二区在线免费观看 | 亚洲国产精品va在线看黑人动漫 | 999精品视频 | www国产亚洲精品久久网站 | 美女视频黄免费的久久 | 亚洲精品一区二区在线观看 | 黄色网址中文字幕 | 在线一二三四区 | 日日日爽爽爽 | 91一区二区三区久久久久国产乱 | 免费福利视频网站 | 99婷婷狠狠成为人免费视频 | 久久福利剧场 | 亚洲精品在线视频 | 久久99精品热在线观看 | 99精品国产兔费观看久久99 | 亚洲成人黄色网址 | 国产精品片 | 久久久精品小视频 | 麻豆一区在线观看 | 激情视频免费在线 | 一区二区精品视频 | 亚洲 欧美 综合 在线 精品 | 久久99久久99精品免视看婷婷 | 国产精品12345 | 成人小视频在线观看免费 | 黄色小说视频在线 | 国产91在线播放 | 五月婷婷一区二区三区 | 国内精品久久久久影院日本资源 | 国产精品 日本 | 91传媒在线| 精品国产一区二区三区久久久蜜臀 | 中文字幕第一页在线 | 成年人视频在线免费播放 | 久草在线欧美 | 欧美一进一出抽搐大尺度视频 | 国产精品成人一区二区三区 | 四虎影视精品永久在线观看 | 成年人免费在线观看网站 | 欧美日韩免费在线观看视频 | 精品一区在线看 | 欧美一级日韩免费不卡 | 欧美一区二区精品在线 | www国产亚洲精品久久网站 | 91精品国产91久久久久福利 | 五月婷婷在线视频观看 | 超碰97在线人人 | 色网站在线免费 | 日本中文乱码卡一卡二新区 | 黄色一级在线观看 | 亚洲视频网站在线观看 | 又黄又刺激的视频 | 九九九视频精品 | 国产a网站 | 国产一区二区在线精品 | 人人射人人射 | 天天草av | 婷婷色吧| 97av视频在线观看 | 在线观看中文字幕网站 | 亚洲欧美综合精品久久成人 | 国产精品九九九九九 | 欧美极品xxxxx | 亚洲国产一区在线观看 | www五月天 | 国产一级精品视频 | 69精品人人人人 | 最近中文字幕免费 | 成人免费共享视频 | 激情五月播播久久久精品 | 国产精品久久久久久久久久久久冷 | 日韩高清一二三区 | av大全在线看| 久久99亚洲网美利坚合众国 | 999久久久久久久久6666 | 日韩免费一级电影 | 干干干操操操 | 人人干人人添 | 91精品在线免费视频 | 国产婷婷 | 在线观看色网 | 激情久久久久久久久久久久久久久久 | 日韩一区二区三区在线观看 | 亚洲综合小说电影qvod | 一级片黄色片网站 | 97超碰在线免费观看 | 久久久久久久久亚洲精品 | 亚洲精品国产综合99久久夜夜嗨 | 日日干夜夜爱 | 欧美综合在线视频 | 97色涩| 久久男人中文字幕资源站 | 久久久精品成人 | 超碰99在线 | 免费在线色 | 国产91精品一区二区麻豆亚洲 | 欧美日韩久久一区 | 国产精品一区二区久久国产 | 久久不卡国产精品一区二区 | 国产综合精品久久 | 97在线视 | 久久精品这里热有精品 | 黄色的视频网站 | 四虎影视成人永久免费观看亚洲欧美 | 日本最新中文字幕 | 久久久久久久久久久久国产精品 | 黄av资源 | 日韩欧美精品一区二区 | 欧美一区在线观看视频 | 亚洲在线高清 | 免费国产ww | 激情电影在线观看 | 国产午夜精品一区二区三区嫩草 | 免费一级片视频 | 黄色小网站在线观看 | 国产精品成人aaaaa网站 | 又黄又刺激视频 | 亚洲视频在线观看 | 久久综合欧美精品亚洲一区 | 国产精品久久久久永久免费 | 亚洲va欧美va人人爽春色影视 | 日日干干 | 99人久久精品视频最新地址 | 91九色性视频 | 天干啦夜天干天干在线线 | 在线观看中文字幕av | 伊人激情综合 | 四虎永久免费在线观看 | 国产小视频免费在线观看 | 中文字幕丰满人伦在线 | 久久久久久久久久久久99 | 欧美色综合天天久久综合精品 | 成人精品国产免费网站 | 欧美一区二区三区四区夜夜大片 | 五月婷婷丁香综合 | 久草在线精品观看 | 黄色三级网站 | 97超级碰 | 日韩一级片大全 | 毛片的网址 | 999久久久欧美日韩黑人 | 美女在线黄| 精品亚洲在线 | 亚洲激情电影在线 | 五月婷亚洲 | 久久国产精品99国产精 | 蜜臀aⅴ国产精品久久久国产 | 九色精品免费永久在线 | 亚洲综合五月 | 91天堂影院| 九九久久久久久久久激情 | 国内少妇自拍视频一区 | 日本精品久久久久中文字幕5 | av解说在线观看 | 久艹在线播放 | 国产一区二区三区免费在线 | 精品欧美一区二区精品久久 | 国产精品久久久久久爽爽爽 | 久久久影院官网 | 国产精品一区二区精品视频免费看 | 九九视频免费在线观看 | 国产区精品区 | 狠狠色丁香久久婷婷综合五月 | 亚洲精品国产拍在线 | 欧美日韩综合在线观看 | 综合网伊人| 国产96在线 | 五月婷婷影院 | 美女网站在线观看 | 国产精品入口66mio女同 | 久久国产精品精品国产色婷婷 | 国内精品久久久久久久久久久 | 国产亚洲va综合人人澡精品 | 日韩乱理 | 在线观看的黄色 | 三级av片| 欧美精品九九99久久 | 视频一区二区国产 | 美女视频黄的免费的 | www.夜夜爽| 91中文字幕视频 | 日韩a级免费视频 | 成人免费电影 | 91视频啊啊啊 | 一级黄网 | 中文字幕高清在线播放 | 色多多在线观看 | 国产精品二区三区 | 91午夜精品 | 亚洲精品国内 | 97香蕉久久国产在线观看 | 国产色女 | 成人av免费 | 亚洲成人精品在线 | 国内三级在线观看 | 一区二区三区精品在线视频 | 久久国内精品99久久6app | 欧美精品久久久久性色 | 国内精品久久久久影院优 | 99久久久国产精品免费观看 | 在线99热 | 草久视频在线观看 | 国产高清一区二区 | 久久久www成人免费毛片麻豆 | 亚洲最新av在线网址 | 国产麻豆传媒 | 国内丰满少妇猛烈精品播 | 成人免费观看视频网站 | 亚洲天堂网视频在线观看 | 黄色在线看网站 | 一区二区三区国产精品 | 成人免费影院 | 成人av地址 | 亚洲国产手机在线 | 日本黄色免费在线观看 | 午夜91在线 | av在线超碰 | 久久精品视频网站 | 欧美少妇xx | 97av超碰| 亚洲成人资源网 | 中文字幕在线看视频国产中文版 | 精品在线播放 | 国内精品久久久久影院男同志 | 午夜美女wwww | 国产黄色免费在线观看 | 日韩com| 精品久久久久一区二区国产 | 亚洲经典精品 | 中文字幕日韩免费视频 | 久久免费视频在线观看6 | 狠狠色狠狠色合久久伊人 | 少妇bbw搡bbbb搡bbb | 最近高清中文在线字幕在线观看 | 亚洲高清免费在线 | 欧美极品xxxxx | 在线观看色网 | 国模一二三区 | 国产二区精品 | 国产精品免费麻豆入口 | 欧美精品久久久久久久久久丰满 | 亚洲精品福利在线观看 | 国模精品在线 | 全久久久久久久久久久电影 | 久久这里只有精品视频首页 | 97在线影视 | 日韩视频一区二区三区在线播放免费观看 | 亚洲精品久久久久久久不卡四虎 | 国产日产精品一区二区三区四区 | 亚洲,播放| 婷婷视频在线观看 | 日韩免费电影一区二区三区 | 国产精品尤物 | 精品国产自 | 亚洲精品久久久久中文字幕m男 | 性色xxxxhd | 色综合久久久久久久 | 日韩视频一区二区 | 亚洲综合在 | 亚洲欧美视屏 | 久久精品日本啪啪涩涩 | 国产专区一 | 91av资源在线| 国产a级精品 | 精品一区二区电影 | 狠狠狠色丁香婷婷综合久久88 | av国产网站| 国产福利91精品一区二区三区 | 欧美小视频在线观看 | 九七在线视频 | 成人在线网站观看 | 久久久久久久久久久网站 | 精品视频www | 午夜久久影视 | 六月丁香婷 | 天天av在线播放 | 亚洲综合视频在线播放 | 国产91精品在线观看 | 亚洲精品视频在线观看免费视频 | 亚洲国产精品电影在线观看 | 亚洲香蕉在线观看 | 青青草在久久免费久久免费 | 97成人精品区在线播放 | 欧美在线观看视频一区二区三区 | 91亚色视频在线观看 | 五月婷婷.com| 国产精品一区二区三区观看 | 国产一二区在线观看 | 97色在线观看免费视频 | 免费十分钟 | 日韩国产精品久久久久久亚洲 | 午夜精品福利一区二区 | 亚洲 欧美 变态 国产 另类 | 波多野结衣电影一区 | 亚洲 欧美 另类人妖 | 国产免费av一区二区三区 | 久久久久国产精品午夜一区 | 亚洲精品久久久蜜臀下载官网 | 中文字幕 成人 | 亚洲1区在线 | 一区二区三区高清不卡 | 久久久久亚洲精品中文字幕 | 日日夜夜天天 | 东方av在 | 国产无套精品久久久久久 | 天天躁日日躁狠狠躁av中文 | 久久综合久久综合这里只有精品 | 91精品国产成人观看 | 99热 精品在线 | 麻豆传媒在线免费看 | 亚洲1区在线 | 天天色天天干天天 | 6080yy午夜一二三区久久 | 色婷婷福利视频 | 欧美专区日韩专区 | 国产二区免费视频 | 最近中文字幕第一页 | 久久97久久97精品免视看 | 国色综合 | 亚州精品在线视频 | 国产成人av一区二区三区在线观看 | 国产亚洲日 | 久久免费视频网站 | 国内成人综合 | a在线免费| 成人在线播放网站 | 永久av免费在线观看 | www五月天婷婷 | 亚洲男女精品 | 中文字幕在线观看免费 | 啪啪免费观看网站 | 国产91小视频 | 欧美久久久久久久久久久久久 | 色婷婷导航 | 草久久精品 | 91在线九色 | 国产精品12| 欧美亚洲精品在线观看 | avsex| 久久综合九色综合欧美狠狠 | 免费a视频 | 久久国产精品免费一区二区三区 | 免费黄色在线播放 | 久青草视频 | 国产国产人免费人成免费视频 | av 一区 二区 久久 | 草久在线观看视频 | 天天射天天操天天 | 888av| 国产一区二区三区在线免费观看 | 日本一区二区三区视频在线播放 | 天天操天天添 | 99九九视频 | 91精品国产一区 | 日韩一区在线播放 | 天天干夜夜 | 天天爱av导航| 国产高清在线免费视频 | av一级片网站 | 蜜臀av一区二区 | 最近中文字幕大全中文字幕免费 | 国产一级二级三级在线观看 | 国产在线综合视频 | 尤物97国产精品久久精品国产 | 99久久毛片 | 97人人模人人爽人人少妇 | 久久久久久久久久国产精品 | 亚洲精品高清视频 | 丁香婷婷久久久综合精品国产 | 午夜在线免费视频 | av在线一| 久久精品一区二区三区国产主播 | www.97视频 | 久久综合中文色婷婷 | 日韩色在线 | 天天综合网~永久入口 | 99国产在线 | 视频91在线| 久久人人爽av | 干综合网| 国产精品热视频 | 中文字幕中文字幕在线中文字幕三区 | 免费看污污视频的网站 | 99久久免费看 | 在线视频专区 | 日韩高清网站 | 中文字幕日韩高清 | 国产精品一区一区三区 | 日韩精品在线看 | 国产在线观看一 | 全黄网站| 一区二区 不卡 | 久久露脸国产精品 | 国产视频一区二区在线观看 | 久草资源在线 | 日韩色在线 | 免费久久久久久久 | 久久精品成人 | 精品国产成人av | 人人舔人人插 | 国产精品爽爽久久久久久蜜臀 | 国产精品不卡视频 | 国产亚洲免费观看 | 日韩电影一区二区三区在线观看 | 日日干天天爽 | 免费欧美 | 韩国av在线播放 | 中文字幕电影在线 | 香蕉视频国产在线观看 | 天天射夜夜爽 | 久久综合一本 | a电影在线观看 | 国产精品免费在线视频 | 成人黄色小说网 | 日韩在线观看你懂得 | 99re久久资源最新地址 | 精品福利视频在线观看 | 中文字幕 在线看 | 97国产小视频 | 婷色| 亚洲资源网| 蜜桃av观看 | 综合国产在线观看 | 欧美激情视频三区 | 精品国产一区二区三区久久久蜜月 | 一区二区视 | 在线网址你懂得 | 手机在线永久免费观看av片 | 国产一区国产二区在线观看 | 97色婷婷人人爽人人 | 国产乱码精品一区二区三区介绍 | 五月婷婷.com | 久久久www成人免费毛片麻豆 | 伊人久久在线观看 | 色综合天天狠天天透天天伊人 | 国产自偷自拍 | 国产一区二区在线观看免费 | 一二三区av| 亚洲精品国产精品久久99 | 免费的黄色的网站 | 国产精品成人品 | 久草在线免费资源站 | 国产高清久久久久 | 色综合久久天天 | 国产一二三四在线观看视频 | 天天射天天干天天操 | 欧美日韩在线观看视频 | 激情网在线观看 | 麻豆一区在线观看 | 久久久国产99久久国产一 | 91福利视频网站 | av片在线观看免费 | 国产成人av片 | 97超碰在线播放 | 久久精品亚洲 | 亚洲精品在线观看不卡 | 久久精品国产免费看久久精品 | 91理论片午午伦夜理片久久 | 中文在线√天堂 | 91免费高清观看 | 久久免费高清 | 欧美最猛性xxxxx免费 | 午夜私人影院久久久久 | 亚洲区精品 | 九九爱免费视频在线观看 | 国产黄网在线 | 亚洲国产精品999 | 五月婷婷综 | 成年人黄色在线观看 | 毛片网站观看 | 插婷婷| 天天曰天天爽 | 青青河边草免费 | 亚洲va欧洲va国产va不卡 | 日韩欧美高清免费 | 不卡日韩av | 99国产一区二区三精品乱码 | 欧美日韩一区二区三区不卡 | 天天综合网天天 | 国产精品久久久久久久久免费 | 天天射天天色天天干 | 91av电影在线观看 | 日韩av免费大片 | 美女视频黄免费的久久 | 日p在线观看 | 免费av影视| 狠狠黄 | 久久夜夜爽 | 99精品小视频 | 国产精品欧美一区二区 | 激情五月激情综合网 | 欧美在线观看小视频 | a级成人毛片| 99在线精品免费视频九九视 | 四虎国产精品成人免费影视 | 热久久免费国产视频 | 国产爽妇网 | 日本性xxx | 国产精品国产三级国产aⅴ9色 | 四虎国产永久在线精品 | 日韩国产精品久久 | 精品91视频 | 81精品国产乱码久久久久久 | www.伊人网 | 国产精品99久久久精品 | 五月天久久 | 国产一区二区精品91 | 丁香六月综合网 | 91成人免费视频 | 国产日韩欧美网站 | 欧美日韩性 | 久久精品国产v日韩v亚洲 | 日韩在线观看第一页 | 亚洲国产久| 国产视频中文字幕在线观看 | 97人人视频 | 96精品高清视频在线观看软件特色 | 久久久久久久久久久久久国产精品 | 久久久免费看片 | 天天操综 | 久久久穴 | 亚洲国产中文在线观看 | 亚洲精品资源在线观看 | 精品国产乱子伦一区二区 | 色多多污污在线观看 | 国产精品久久久久久超碰 | 天天操夜夜操 | 久久人人爽av | 亚洲精品中文字幕在线 | 国产一区二区三区高清播放 | 在线观看视频一区二区三区 | 97电影在线看视频 | 九九久久精品 | 久草在线视频精品 | 日日夜夜精品免费视频 | 黄色av免费| 激情图片区 | 成人黄色在线看 | 久久久久久久久久久精 | 国产精品久久久久久久久久久久冷 | 婷婷精品国产欧美精品亚洲人人爽 | 97碰碰精品嫩模在线播放 | 天天干天天操天天操 | 激情视频免费在线观看 | 欧美日韩调教 | 在线视频精品 | 97精品视频在线播放 | 久久久久久网 | 欧美日韩一区二区在线观看 | 中文字幕在线视频一区二区 | 激情综合网在线观看 | 亚洲区另类春色综合小说 | 中文字幕在线一二 | 91av原创 | 国产精品久久久电影 | 手机看片 | 欧美热久久 | 激情五月伊人 | 丝袜精品视频 | 亚洲欧美国产视频 | 亚洲精品网址在线观看 | 高清精品在线 | 五月婷婷欧美 | 成人免费视频网站 | 欧美成人区 | www.少妇| 久热国产视频 | 91在线文字幕| 亚洲成色777777在线观看影院 | 国产精品久久久久久吹潮天美传媒 | 婷婷色网站| 天堂av免费 | 521色香蕉网站在线观看 | 97超碰在线人人 | 丝袜美女在线观看 | 免费在线观看日韩 | 深爱五月网 | 爱爱一区 | 免费福利在线视频 | 99久久精品久久亚洲精品 | 综合婷婷丁香 | 日韩高清成人在线 | 水蜜桃亚洲一二三四在线 | www.午夜色.com | 日韩高清av | 成人毛片久久 | 一区精品在线 | 日韩精品视频一二三 | 欧美日韩高清一区二区 国产亚洲免费看 | 欧美日韩在线观看一区 | 97人人模人人爽人人喊中文字 | 久久成人在线 | 婷婷 综合 色| 久久久久国产成人免费精品免费 | 婷婷五月在线视频 | 在线播放亚洲 | 久久国语| 99综合影院在线 | 成人三级av| 免费h精品视频在线播放 | 国产日韩欧美在线观看视频 | av电影在线观看完整版一区二区 | 国产精品一区二区在线观看 | 超碰av在线| 在线观看你懂的网址 | 天天搞天天干 | 亚洲人成在 | 久久久久久国产精品999 | 国产福利91精品一区 | 六月婷婷网 | 在线韩国电影免费观影完整版 | 在线观看免费高清视频大全追剧 | 97超碰伊人 | 91完整视频| 亚洲女人天堂成人av在线 | 国产美女精品视频 | 日韩1级片 | 婷婷夜夜 | 丁香六月在线观看 | 久久久免费精品国产一区二区 | 免费91在线观看 | av千婊在线免费观看 | 欧美一区成人 | 日本三级不卡视频 | 不卡av电影在线 | 五月天婷婷在线观看视频 | 99这里只有精品视频 | 狂野欧美激情性xxxx欧美 | 欧美激情精品久久久久久免费 | 精品视频999 | 99热精品在线观看 | 91香蕉视频黄 | 免费三级大片 | www色com| 国产99精品在线观看 | 九九热免费在线视频 | 玖玖在线视频观看 | 国产美女视频免费观看的网站 | 中文字幕网址 | 日韩国产欧美在线播放 | 天天天综合| 天天爱天天操 | 三级免费黄 | 国产久视频 | 欧美日韩免费一区二区 | 精品av在线播放 | 国内精品久久久久久久久久清纯 | 国产999在线| 1024手机看片国产 | 国产福利在线不卡 | 天天操夜操视频 | 91在线日韩 | 91九色丨porny丨丰满6 | 安徽妇搡bbbb搡bbbb | 视频精品一区二区三区 | 一区二区三区在线不卡 | 91网站观看| 欧美精品一区二区在线观看 | 久久成人国产精品免费软件 | 97精品国产97久久久久久 | 在线观看色网站 | 久久免费毛片 | 在线观看av的网站 | 久艹在线观看视频 | 丁香花在线视频观看免费 | 在线播放 日韩专区 | 久久久免费 | 久久av黄色| 91麻豆高清视频 | 久草.com| 欧美成人tv | 综合激情婷婷 | 久久人人精品 | 久久久久久国产精品久久 | 久久一区二区三区超碰国产精品 | 日韩精品视频在线观看网址 | 久久玖 | 久久精品网站视频 | 国产一区二区三区免费观看视频 | 天天爱天天舔 | 久久天堂影院 | 国内精品免费久久影院 | 免费黄av| 久久久影院一区二区三区 | 欧美有色| 91成人看片| 中文字幕在线观看免费 | 欧美日本不卡 | 777久久久| 中文字幕中文字幕在线中文字幕三区 | 青春草视频 | 国产一区精品在线 | 中文字幕日韩在线播放 | 婷婷丁香狠狠爱 | 国产精品地址 | 国产精品黄色在线观看 | 三级黄色大片在线观看 | 黄色软件在线观看 | 亚洲 欧美 精品 | 97在线看 | 国产精品每日更新 | 亚洲黄网址| 久人人| 91传媒免费观看 | 亚洲国产小视频在线观看 | 天天鲁一鲁摸一摸爽一爽 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 国产精品成 | 手机看片久久 | 综合网久久 | 成人久久久久久久久久 | 精品亚洲欧美无人区乱码 | 国产视频97 | 人人添人人澡 | 97精品超碰一区二区三区 | 伊人伊成久久人综合网小说 | 成人免费观看av | 亚洲精品久久久久58 | 国产99免费视频 | 国产色视频123区 | 欧美aa一级 | 九九热有精品 | 国产精品免费成人 | 天天爽天天爽夜夜爽 | 中文字幕在线免费播放 | 婷婷精品进入 | 亚洲一区 av| 免费三级网 | 亚洲区精品 | 日韩av网站在线播放 | 麻豆视频91 | 日韩视频免费看 | 人人躁| 亚洲狠狠婷婷综合久久久 |