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

詳解JDK動態代理和CGLib動態代理

開發 后端
代理模式(Proxy Pattern)是23種設計模式中的一種,屬于結構型設計模式。代理模式給某一個對象提供一個代理,并由代理對象控制原對象的引用。代理對象在客戶端和目標對象之間起到中介作用。

代理模式

代理模式(Proxy Pattern)是23種設計模式中的一種,屬于結構型設計模式。代理模式給某一個對象提供一個代理,并由代理對象控制原對象的引用。代理對象在客戶端和目標對象之間起到中介作用。

舉個例子:你要去吃飯,你可以選擇自己在家做飯、吃飯、刷碗,所有的事情都自己做;也可以選擇去餐廳,自己只是吃飯,把做飯和刷碗的活兒都交給代理對象,也就是餐廳的工作人員。

下圖是代理模式的通用類圖。結合例子,就很容易理解了。

代理模式通用類圖

代理模式包含如下角色:

  • Subject (抽象主題角色) 抽象主題角色聲明了真實主題和代理主題的共同接口,這樣一來在任何使用真實主題 的地方都可以使用代理主題。客戶端需要針對抽象主題角色進行編程。
  • Proxy (代理主題角色) 代理主題角色內部包含對真實主題的引用,從而可以在任何時候操作真實主題對象。 在代理主題角色中提供一個與真實主題角色相同的接口,以便在任何時候都可以替代真實主體。代理主題角色還可以控制對真實主題的使用,負責在需要的時候創建和刪除真實主題對象,并對真實主題對象的使用加以約束。代理角色通常在客戶端調用所引用的真實主題操作之前或之后還需要執行其他操作,而不僅僅是單純的調用真實主題對象中的操作。
  • RealSubject (真實主題角色) 真實主題角色定義了代理角色所代表的真實對象,在真實主題角色中實現了真實的業務操作,客戶端可以通過代理主題角色間接調用真實主題角色中定義的方法。

代理模式可以分為靜態代理和動態代理兩種類型,而動態代理中又分為JDK動態代理和CGLIB代理兩種。

JDK動態代理

在jdk的動態代理機制中,有幾個重要的角色:

  • Interface:對于JDK Proxy,業務類是需要一個Interface的。
  • Proxy:Proxy類是動態產生的,這個類在調用Proxy.newProxyInstance()方法之后,產生一個Proxy類的實例。實際上,這個Proxy類也是存在的,不僅僅是類的實例,這個Proxy類可以保存在硬盤上。
  • Method:對于業務委托類的每個方法,現在Proxy類里面都不用靜態顯示出來。
  • InvocationHandler:這個類在業務委托類執行時,會先調用invoke方法。invoke方法再執行想要的代理操作,可以實現對業務方法的再包裝。

(1)InvocationHandler

每一個動態代理類都必須要實現InvocationHandler這個接口,并且每個代理類的實例都關聯了一個handler,當我們通過代理對象調用一個方法的時候,這個方法的調用就會被轉發為由InvocationHandler這個接口的 invoke 方法來進行調用。

InvocationHandler這個接口的唯一一個方法 invoke 方法:

Object invoke(Object proxy, Method method, Object[] args) throws Throwable

這個方法一共接受三個參數,那么這三個參數分別代表如下:

  • proxy:指代JDK動態生成的最終代理對象
  • method:指代的是我們所要調用真實對象的某個方法的Method對象
  • args:指代的是調用真實對象某個方法時接受的參數

(2)Proxy

Proxy這個類的作用就是用來動態創建一個代理對象的類,它提供了許多的方法,但是我們用的最多的就是newProxyInstance 這個方法:

public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler handler) throws IllegalArgumentException

這個方法的作用就是得到一個動態的代理對象,其接收三個參數,我們來看看這三個參數所代表的含義:

  • loader:ClassLoader對象,定義了由哪個ClassLoader來對生成的代理對象進行加載,即代理類的類加載器。
  • interfaces:Interface對象的數組,表示的是我將要給我需要代理的對象提供一組什么接口,如果我提供了一組接口給它,那么這個代理對象就宣稱實現了該接口(多態),這樣我就能調用這組接口中的方法了。
  • Handler:InvocationHandler對象,表示的是當我這個動態代理對象在調用方法的時候,會關聯到哪一個InvocationHandler對象上。

所以我們所說的DynamicProxy(動態代理類)是這樣一種class:它是在運行時生成的class,在生成它時你必須提供一組interface給它,然后該class就宣稱它實現了這些 interface。這個DynamicProxy其實就是一個Proxy,它不會做實質性的工作,在生成它的實例時你必須提供一個handler,由它接管實際的工作。

(3)代碼實現

被代理對象:

/**
 * 抽象主題角色
 */
interface Subject {
    void eat();
}

/**
 * 真實主題角色 - 你自己 - 專注吃飯
 */
class YourSelf implements Subject{

    @Override
    public void eat() {
        System.out.println("自己吃飯");
    }
}

代理對象:

/**
 * 代理主題角色 - 餐廳
 * 每次生成動態代理類對象時都需要指定一個實現了InvocationHandler接口的調用處理器對象
 */
class JdkProxySubject implements InvocationHandler {

    // 這個就是我們要代理的真實對象,也就是真正執行業務邏輯的類
    private Object target;

    // 通過構造方法傳入這個被代理對象
    public JdkProxySubject(Object target) {
        super();
        this.target = target;
    }

    // 創建代理對象
    public Object createProxy() {
        // 1.得到目標對象的類加載器
        ClassLoader classLoader = target.getClass().getClassLoader();
        // 2.得到目標對象的實現接口
        Class<?>[] interfaces = target.getClass().getInterfaces();
        // 3.第三個參數需要一個實現invocationHandler接口的對象
        Object newProxyInstance = Proxy.newProxyInstance(classLoader, interfaces, this);
        return newProxyInstance;
    }


    // 當代理對象調用真實對象的方法時,其會自動的跳轉到代理對象關聯的handler對象的invoke方法來進行調用
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("餐廳工作人員做飯......");
        Object invoke = method.invoke(target, args);
        System.out.println("餐廳工作人員刷碗......");
        return invoke;
    }
}

測試類:

/**
 * 測試類
 * @author tianxiaopeng@hxy
 * @date 2023/10/11 11:09 AM
 */
public class ProxyTest {
    public static void main(String[] args) {
        // 1.創建對象
        YourSelf yourSelf = new YourSelf();
        // 2.創建代理對象
        JdkProxySubject proxy = new JdkProxySubject(yourSelf);
        // 3.調用代理對象的增強方法,得到增強后的對象
        Subject createProxy = (Subject) proxy.createProxy();
        createProxy.eat();
    }
}

CGLIB動態代理

JDK動態代理是通過重寫被代理對象實現的接口中的方法來實現,而CGLIB是通過繼承被代理對象來實現,和JDK動態代理需要實現指定接口一樣,CGLIB也要求代理對象必須要實現MethodInterceptor接口,并重寫其唯一的方法intercept。

CGLib采用了非常底層的字節碼技術,其原理是通過字節碼技術為一個類創建子類,并在子類中采用方法攔截的技術攔截所有父類方法的調用,順勢織入橫切邏輯。(利用ASM開源包,對代理對象類的class文件加載進來,通過修改其字節碼生成子類來處理)

注意:因為CGLIB是通過繼承目標類來重寫其方法來實現的,故而如果是final和private方法則無法被重寫,也就是無法被代理。

<dependency>
    <groupId>cglib</groupId>
	<artifactId>cglib-nodep</artifactId>
	<version>2.2</version>
</dependency>

(1)CGLib核心類

net.sf.cglib.proxy.Enhancer:主要增強類,通過字節碼技術動態創建委托類的子類實例。

Enhancer可能是CGLIB中最常用的一個類,和Java1.3動態代理中引入的Proxy類差不多。和Proxy不同的是,Enhancer既能夠代理普通的class,也能夠代理接口。Enhancer創建一個被代理對象的子類并且攔截所有的方法調用(包括從Object中繼承的toString和hashCode方法)。Enhancer不能夠攔截final方法,例如Object.getClass()方法,這是由于Java final方法語義決定的。基于同樣的道理,Enhancer也不能對fianl類進行代理操作。這也是Hibernate為什么不能持久化final class的原因。

net.sf.cglib.proxy.MethodInterceptor:常用的方法攔截器接口,需要實現intercept方法,實現具體攔截處理。

public java.lang.Object intercept(java.lang.Object obj,
                                   java.lang.reflect.Method method,
                                   java.lang.Object[] args,
                                   MethodProxy proxy) throws java.lang.Throwable{}
  • obj:動態生成的代理對象。
  • method:實際調用的方法。
  • args:調用方法入參。
  • net.sf.cglib.proxy.MethodProxy:java Method類的代理類,可以實現委托類對象的方法的調用;常用方法:methodProxy.invokeSuper(proxy, args);在攔截方法內可以調用多次。

(2)CGLib代理實例

創建被代理類。

/**
 * 真實主題角色 - 你自己 - 專注吃飯
 */
class YourSelf {
    public void eat(){
        System.out.println("自己吃飯");
    }
}

創建代理類:

/**
 * 代理主題角色 - 餐廳
 */
class ProxyCglib implements MethodInterceptor {
    private Enhancer enhancer = new Enhancer();
    public Object getProxy(Class clazz){
        //設置需要創建子類的類
        enhancer.setSuperclass(clazz);
        enhancer.setCallback(this);
        //通過字節碼技術動態創建子類實例
        return enhancer.create();
    }

    //實現MethodInterceptor接口方法
    public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
        System.out.println("餐廳工作人員做飯......");
        //通過代理類調用父類中的方法
        Object result = proxy.invokeSuper(obj, args);
        System.out.println("餐廳工作人員刷碗......");
        return result;
    }
}

測試類:

/**
 * 測試類
 * @author tianxiaopeng@hxy
 * @date 2023/10/11 11:51 AM
 */
public class CglibTest {
    public static void main(String[] args) {
        ProxyCglib proxy = new ProxyCglib();
        //通過生成子類的方式創建代理類
        YourSelf proxyImp = (YourSelf)proxy.getProxy(YourSelf.class);
        proxyImp.eat();
    }
}

結果:

餐廳工作人員做飯......
自己吃飯
餐廳工作人員刷碗......

(2)CGLIB動態代理實現分析

CGLib動態代理采用了FastClass機制,其分別為代理類和被代理類各生成一個FastClass,這個FastClass類會為代理類或被代理類的方法分配一個 index(int類型)。這個index當做一個入參,FastClass 就可以直接定位要調用的方法直接進行調用,這樣省去了反射調用,所以調用效率比 JDK 動態代理通過反射調用更高。

但是我們看上面的源碼也可以明顯看到,JDK動態代理只生成一個文件,而CGLIB生成了三個文件,所以生成代理對象的過程會更復雜。

兩者區別

  • JDK代理只能對實現接口的類生成代理;CGLib是針對類實現代理,對指定的類生成一個子類,并覆蓋其中的方法,這種通過繼承類的實現方式,不能代理final修飾的類。
  • JDK代理使用的是反射機制實現aop的動態代理,CGLib代理使用字節碼處理框架ASM,通過修改字節碼生成子類。
  • JDK動態代理機制是委托機制,具體說動態實現接口類,在動態生成的實現類里面委托hanlder去調用原始實現類方法,CGLib則使用的繼承機制,具體說被代理類和代理類是繼承關系,所以代理類是可以賦值給被代理類的,如果被代理類有接口,那么代理類也可以賦值給接口。
責任編輯:姜華 來源: 今日頭條
相關推薦

2022-09-01 10:40:29

SpringAOPJDK

2021-07-06 06:39:22

Java靜態代理動態代理

2021-04-22 09:58:15

JDK代理動態

2021-07-14 11:07:56

AOPJDKCglib

2025-02-27 00:32:35

2021-01-14 05:16:09

MyBatis動態代理

2023-07-05 08:17:38

JDK動態代理接口

2017-05-11 21:30:01

Android動態代理ServiceHook

2024-01-04 07:42:44

JavaCGLIBJDK

2011-04-06 11:41:25

Java動態代理

2023-02-24 07:42:30

Java動態代理

2024-09-05 09:35:58

CGLIBSpring動態代理

2022-02-22 22:44:46

接口源碼對象

2012-08-28 10:59:26

JavaJava動態代理Proxy

2015-09-22 11:09:47

Java 8動態代理

2011-03-23 10:40:51

java代理模式

2009-12-28 15:45:22

動態網絡接入控制

2021-07-03 08:59:49

動態代理JDK

2022-06-30 10:05:30

Java接口動態代理

2020-12-29 05:34:00

動態代理
點贊
收藏

51CTO技術棧公眾號

欧美成人午夜激情| 国产高清精品久久久久| 亚洲欧美日韩国产精品| 日日躁夜夜躁aaaabbbb| av网站免费在线观看| 99久久精品情趣| 成人女保姆的销魂服务| 久久久全国免费视频| 久久不见久久见中文字幕免费| 91精品国产日韩91久久久久久| 久久综合色视频| 天堂а√在线资源在线| kk眼镜猥琐国模调教系列一区二区| 国产精品久久久久77777| 玖玖爱免费视频| 国产精品美女久久久久久不卡| 日韩免费福利电影在线观看| 久久久久久久久久久久久国产精品| 欧美激情黑人| 久久久精品免费网站| 亚洲va码欧洲m码| 国产九色91回来了| 新狼窝色av性久久久久久| 欧美刺激性大交免费视频| 受虐m奴xxx在线观看| 99精品国产一区二区三区2021| 欧美性大战久久久久久久蜜臀| 国产二区视频在线| 成人日批视频| 欧美国产精品中文字幕| 九九热久久66| 少妇一区二区三区四区| 国产成人综合在线播放| 国产精品永久免费视频| 国产99久久久久久免费看| 中文高清一区| 久久久天堂国产精品女人| 五月天激情丁香| 日韩在线不卡| 原创国产精品91| 一级片手机在线观看| 一区二区三区视频免费观看| 亚洲精品国产精品国产自| 黄色av电影网站| 丁香五月缴情综合网| 欧美一区二区三区免费| 欧美日韩精品区别| 久久婷婷五月综合色丁香| 欧美综合在线视频| 91制片厂毛片| 九九久久国产| 色老汉一区二区三区| 日韩精品一区二区三区不卡| 桃花岛tv亚洲品质| 在线一区二区视频| 国产免费又粗又猛又爽| 成人在线视频免费| 欧美丰满美乳xxx高潮www| 天堂av8在线| 精品视频在线播放一区二区三区 | 中文欧美字幕免费| 日本一区二区精品视频| 丁香婷婷在线| 国产精品久久二区二区| 中文字幕av久久| 在线视频国产区| 亚洲成人一区二区在线观看| 国产在线精品91| 天然素人一区二区视频| 欧美三级视频在线| 无人码人妻一区二区三区免费| 成人精品毛片| 亚洲人永久免费| 久久爱一区二区| 欧美日韩蜜桃| 国产成人一区二| 一区二区三区精彩视频| 国产99久久久久久免费看农村| 狠狠色狠狠色综合人人| 精品视频一二三| 自拍偷拍亚洲欧美日韩| 日本香蕉视频在线观看| 成人福利视频| 日韩一区二区麻豆国产| 国产精品无码电影| 成人中文在线| 欧美激情一区二区三级高清视频| 日韩视频在线观看一区| 精品一区二区三区在线视频| 国产91亚洲精品一区二区三区| 伦理片一区二区三区| 亚洲少妇屁股交4| 国模无码视频一区二区三区| 国产成人精品一区二区三区视频| 欧美成人性福生活免费看| 国产艳俗歌舞表演hd| 国产精品99在线观看| 97免费视频在线播放| 怡红院男人天堂| 不卡av在线免费观看| 少妇免费毛片久久久久久久久| 在线中文字幕第一页| 色综合天天天天做夜夜夜夜做| 热久久久久久久久| 免费一区二区| 欧美极品少妇xxxxⅹ免费视频| 中文字幕观看在线| 91在线观看下载| 久久久久久久香蕉| 伦一区二区三区中文字幕v亚洲| 亚洲国产精品99| 中国毛片直接看| 久久精品123| 爱情岛论坛亚洲入口| 色网站免费在线观看| 精品成人乱色一区二区| 午夜影院免费版| 不卡一区2区| 日本久久91av| 亚洲欧美日韩精品永久在线| 亚洲美女免费在线| 激情五月俺来也| 免费国产自久久久久三四区久久| 欧美日韩第一页| 亚洲天堂中文在线| 国产女主播一区| 无码人妻丰满熟妇区毛片| 国产精品久久久网站| 欧美日韩第一页| 国产av无码专区亚洲av麻豆| 国产精品第一页第二页第三页| 久久九九国产视频| 91黄视频在线| 99re6热在线精品视频播放速度| 日本ー区在线视频| 亚洲一区二区精品3399| 欧美成人黄色网址| 国产精品自偷自拍| 99久久久无码国产精品| 国产成人在线小视频| 中文成人激情娱乐网| 国产午夜一区二区| 日韩av免费播放| 久久一二三国产| 97在线播放视频| 日韩美女精品| 国产ts人妖一区二区三区| 天堂a√中文在线| 欧美日韩国产在线播放| 鲁大师私人影院在线观看| 亚洲少妇在线| 日本精品二区| 91p九色成人| 久久久www成人免费精品| 国产精品一级二级| 亚洲激情六月丁香| 性色av蜜臀av浪潮av老女人| 最新亚洲视频| 欧美日韩一区二| 成人国产网站| 欧美成人午夜激情在线| 欧美一区二区黄片| 一道本成人在线| 一级特黄曰皮片视频| 韩国av一区二区三区四区| 欧美日韩中文字幕在线播放| jazzjazz国产精品久久| 26uuu亚洲国产精品| 国产中文在线视频| 欧美日韩aaaaaa| 久久综合激情网| 26uuu精品一区二区在线观看| 91看片就是不一样| 97精品一区| 国产精品免费在线| 亚洲成人人体| 久久大大胆人体| 天天干天天爱天天操| 欧美色图一区二区三区| www.超碰在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 污污网站免费看| 极品av少妇一区二区| 欧美一区国产一区| 成人乱码手机视频| 2025国产精品视频| caoporn97在线视频| 日韩成人激情视频| 夜夜骚av一区二区三区| 偷窥国产亚洲免费视频| 欧美精品日韩在线| eeuss鲁片一区二区三区在线观看| 男女视频一区二区三区| 亚洲区综合中文字幕日日| 蜜桃传媒视频第一区入口在线看| 欧美亚洲人成在线| 国产69精品久久久久久| 国产一二区在线| 亚洲视频电影图片偷拍一区| 99在线精品视频免费观看软件| 福利精品视频在线| 99久久婷婷国产综合| 久久久久高清精品| www.四虎在线| 精品综合久久久久久8888| 欧美一级在线看| 欧美va天堂在线| 天天好比中文综合网| 欧美电影在线观看完整版| 91精品国产综合久久男男| 成人性生交大片免费观看网站| 美女啪啪无遮挡免费久久网站| 毛片在线播放网站| 亚洲精品动漫100p| 免费观看a视频| 欧美一级生活片| 在线视频 中文字幕| 高跟丝袜一区二区三区| 久青草免费视频| 亚洲精品五月天| 国产中文av在线| 国产日产精品一区| 欧美bbbbb性bbbbb视频| 成人免费av资源| 香蕉视频免费网站| 国产精品66部| 免费人成视频在线播放| 激情深爱一区二区| 中文字幕第100页| 青青草97国产精品免费观看| 国产又黄又猛视频| 视频在线观看91| 国产男女激情视频| 日韩在线观看一区二区| 国产一区亚洲二区三区| 午夜综合激情| 成人免费观看视频在线观看| 亚洲激情偷拍| 免费无遮挡无码永久视频| 伊人久久成人| 国产九色porny| 国产亚洲综合精品| 欧美日韩成人免费视频| 超碰aⅴ人人做人人爽欧美| 久久人人看视频| 牛牛在线精品视频| 久久久日本电影| 毛片电影在线| 国产91ⅴ在线精品免费观看| 在线最新版中文在线| 97视频在线免费观看| 麻豆mv在线观看| 日韩av手机在线观看| 免费观看欧美大片| 国产精品吹潮在线观看| 九九热线视频只有这里最精品| 国产精品白嫩初高中害羞小美女| 成人自拍视频网| 成人黄色免费网站在线观看| 国产成年精品| 国产麻豆乱码精品一区二区三区| 农村少妇一区二区三区四区五区 | 欧美色图色综合| 噜噜噜91成人网| 中国黄色片免费看| 国产一区二区调教| 国产黄色三级网站| 中文在线一区二区| 欧美成人手机视频| 精品国产乱码久久久久久虫虫漫画 | 欧美日韩在线精品一区二区三区激情 | 51久久夜色精品国产麻豆| 精品黑人一区二区三区在线观看 | 免费男女羞羞的视频网站在线观看| 久久久久中文字幕| 欧美大片免费高清观看| 91在线精品视频| 日韩最新在线| 一区二区在线观看网站| 狠狠88综合久久久久综合网| 欧美一级在线看| 激情都市一区二区| 亚洲天堂网一区二区| 国产精品久99| 国产成人无码精品| 欧美美女直播网站| 性xxxx18| 操日韩av在线电影| 小毛片在线观看| 99综合电影在线视频| 久久中文字幕精品| 亚洲午夜久久久久久久久久久| 天堂网一区二区| 欧美mv和日韩mv国产网站| 精品视频一二三| 欧美极品少妇xxxxⅹ喷水| av在线日韩| 国产三级精品在线不卡| 久久精品av| 日韩人妻精品无码一区二区三区| 精品一区在线看| 亚洲av无码国产精品麻豆天美| 亚洲综合一二区| 国产又粗又猛视频免费| 精品亚洲一区二区三区在线播放 | 欧美精品久久久久| 国产原创一区| 欧洲精品一区色| 99精品99| 97中文字幕在线观看| 国产精品国产三级国产三级人妇 | 猛男gaygay欧美视频| 吴梦梦av在线| 日日夜夜免费精品视频| 国产性生活毛片| 亚洲乱码一区二区三区在线观看| 日韩欧美国产另类| 亚洲久久久久久久久久久| 美女尤物在线视频| 91传媒在线免费观看| 久久人体视频| 国产喷水theporn| 国产视频一区二区在线观看| 在线能看的av| 亚洲精品乱码久久久久久金桔影视| 色网在线观看| 2014国产精品| 91精品福利| 亚洲一二三不卡| 1000部国产精品成人观看| 亚洲熟妇av乱码在线观看| 在线观看日韩av| 忘忧草在线www成人影院| 欧美精品一区二区三区在线看午夜 | 久久久精品久久久久久96| 黄色片视频在线| 国产精品视频你懂的| 羞羞色院91蜜桃| 中文字幕综合一区| 欧美在线一级| 国产卡一卡二在线| 国产精品资源在线| 青青草免费av| 精品粉嫩aⅴ一区二区三区四区| 色婷婷av在线| 国产精品三区在线| 在线视频亚洲| 国产毛片久久久久久久| 日本丶国产丶欧美色综合| 国产精品久久一区二区三区不卡| 国产91在线播放九色快色| 欧洲三级视频| 亚洲黄色片免费| 一区二区三区精品| 熟妇高潮一区二区三区| 奇米4444一区二区三区 | 日韩一级淫片| 欧美精品久久久久久久久久久| 91亚洲精品久久久蜜桃网站| 一本一道无码中文字幕精品热| 亚洲色图35p| 亚洲一区二区三区久久久| 麻豆一区二区三区在线观看| 国产成人自拍高清视频在线免费播放| 久久亚洲av午夜福利精品一区| 日韩理论片久久| 外国电影一区二区| 狠狠精品干练久久久无码中文字幕| 成人h精品动漫一区二区三区| 五月婷婷色丁香| 色吧影院999| 精品国产一区二区三区不卡蜜臂| 欧洲av无码放荡人妇网站| 中文字幕乱码亚洲精品一区 | 国产精品影视天天线| 日韩精品成人在线| 在线观看国产精品91| aa亚洲一区一区三区| 男人日女人视频网站| 中文字幕欧美激情一区| 精品人妻久久久久一区二区三区| 97超级碰在线看视频免费在线看 | 92看片淫黄大片一级| 中文字幕制服丝袜成人av| 女人18毛片水真多18精品| 国产精品美女免费| 精品成人国产| 91av手机在线| 日韩成人在线视频网站| 日韩城人网站| 久久久久久久久久久福利| 综合精品久久久| 精品无人乱码| 国产精品二区三区| 久久99久久久久久久久久久| 五月婷婷激情网| 久久天天躁夜夜躁狠狠躁2022| 日韩精品免费一区二区夜夜嗨| 手机在线观看日韩av| 91福利精品第一导航|