• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于SpringBoot結(jié)果集序列化過濾插件的研究與實現(xiàn)

    2020-10-20 03:23:49王春波葛雷文雪巍
    商情 2020年41期
    關(guān)鍵詞:堆棧序列化

    王春波 葛雷 文雪巍

    【摘要】SpringBoot是由Pivotal團(tuán)隊在2013年開始研發(fā)、2014年4月發(fā)布第一個版本的全新開源的輕量級框架。它基于Spring4.0設(shè)計,不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進(jìn)一步簡化了Spring應(yīng)用的整個搭建和開發(fā)過程。該框架使用內(nèi)置的注解與Jackson插件可方便的將結(jié)果集序化成適合于移動互聯(lián)網(wǎng)廠商作為業(yè)務(wù)接口的JSON格式字符串。由于框架的高度集成使得結(jié)果集序列化成JSON字符串時過于規(guī)則化,不能適用于較為復(fù)雜的業(yè)務(wù)場景,且對于復(fù)雜的結(jié)果集還會出現(xiàn)堆棧溢出錯誤,筆者分析了SpringBoot消息序列化過程,結(jié)合業(yè)務(wù)場景,給出了如何靈活定義結(jié)果集序列化規(guī)則,如何避免堆棧溢出錯誤的設(shè)計與實現(xiàn)方法,從而為使用SpringBoot框架作為開發(fā)技術(shù)棧的項目組提供了借鑒與參考。

    【關(guān)鍵詞】SpringBoot? Jackson? 堆棧? JSON? 序列化

    一、引言

    Spring Boot是由Pivotal團(tuán)隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域成為領(lǐng)導(dǎo)者。

    SpringBoot框架中有兩個非常重要的策略:開箱即用和約定優(yōu)于配置。開箱即用,是指在開發(fā)過程中,通過在MAVEN項目的pom文件中添加相關(guān)依賴包,然后使用對應(yīng)注解來代替繁瑣的XML配置文件以管理對象的生命周期。這個特點使得開發(fā)人員擺脫了復(fù)雜的配置工作以及依賴的管理工作,更加專注于業(yè)務(wù)邏輯。約定優(yōu)于配置,是一種由SpringBoot本身來配置目標(biāo)結(jié)構(gòu),由開發(fā)者在結(jié)構(gòu)中添加信息的軟件設(shè)計范式。這一策略減少了開發(fā)人員需要做出決定的數(shù)量,同時減少了大量的XML配置,并且可以將代碼編譯、測試和打包等工作自動化,但也降低了部分靈活性,增加了缺陷定位的復(fù)雜性。

    對于復(fù)雜的項目需求,SpringBoot缺少靈活性的結(jié)果集轉(zhuǎn)換方式,不但不能降低開發(fā)人員勞動強(qiáng)度和復(fù)雜度,相反極大的增加了開發(fā)人員的工作量以及出現(xiàn)去缺陷的可能。因此,需要找到一個確實有效方法允許開發(fā)人員靈活配置結(jié)果集序列化規(guī)則,但同時又不能破壞或改變SpringBoot框架原有的優(yōu)勢。

    二、SpringBoot結(jié)果集序列化的現(xiàn)狀與問題

    SpringBoot默認(rèn)使用Jackson插件進(jìn)行結(jié)果集序列化。SpringBoot允許開發(fā)者使用其他插件例如Fastjson替換默認(rèn)的Jackson進(jìn)行結(jié)果集序列化,但無論使用哪種插件都面臨著序列化規(guī)則僵化、不靈活的弊端。試想當(dāng)相同的視圖對象應(yīng)用于不同的請求接口時,就會出現(xiàn)需要的請求字段不一樣場景,例如以下部門定義實體:

    public class SysDepart {

    private String departAddr; //部門地址

    private String departPhone; //部門電話

    private Integer departLevel; //部門級別

    private String departName; //部門名稱

    private String departExplain; //部門說明

    private String departType; //部門類型

    private SysSchool school; //歸屬學(xué)校

    private SysDepart parentDepart ; //父級部

    private List staff; //歸屬該部門的員工列表

    }

    針對獲取部門基本信息的接口,僅需要返回departAddr、departLevel、departName、departExplain、departType這個五個屬性字段即可;針對獲取部門員工列表的接口,僅需返回List staff 這個屬性字段即可;

    對于這類問題通常有以下4中解決辦法:

    (1)返回全部屬性字段:即由接口發(fā)起方進(jìn)行二次判斷,這種解決辦法不僅增加了開發(fā)人員的工作量,也給系統(tǒng)帶來了額外開銷。特別的,如果視圖對象存在雙向關(guān)聯(lián)關(guān)系,即SysDepart擁有屬性字段SysSchool school,同時SysSchool擁有屬性字段List depart;兩個實體構(gòu)成雙向一對多關(guān)系時,用Jackson或Fastjson等插件進(jìn)行結(jié)果序列化時均會出現(xiàn)堆棧溢出錯誤。

    (2)結(jié)果集二次處理:適當(dāng)增加注解,對結(jié)果集進(jìn)行二次處理。該方法雖能夠避免開發(fā)人員進(jìn)行多余的判斷,但卻不能避免首次結(jié)果集序列化JSON時發(fā)起的不需要的關(guān)聯(lián)查詢,以及避免序列化兩個構(gòu)成雙向一對多關(guān)系實體時出現(xiàn)的堆棧溢出錯誤。

    (3)Jackson提供@JsonFilter 注解實現(xiàn)結(jié)果集的動態(tài)過濾,但該注解使用麻煩,需要一個對象寫多個子類以區(qū)分不同的結(jié)果集,對于更復(fù)雜關(guān)聯(lián)查詢則顯得捉襟見肘。

    (4)無論是Jackson還是FastJson都提供了簡單過濾器,但這類過濾器僅能進(jìn)行全局配置,無法做到個性化輸出。

    綜上所述,無論是SpringBoot官方還是插件提供商均未曾為該類問題提供方便有效的解決辦法。筆者充分分析SpringBoot結(jié)果集序列化過程,通過擴(kuò)展接口、自定義解析規(guī)則、增加必要注解,利用AOP編程思想編碼實現(xiàn)了解決該類問題的插件,插件命名為Power-filter。Power-filter可以根據(jù)不同的業(yè)務(wù)場景配置返回不同的結(jié)果集,不僅能夠有效避免雙向關(guān)聯(lián)實體bean因循環(huán)查詢導(dǎo)致的堆棧溢出問題,也能減少非必要查詢,降低開發(fā)人員的編碼復(fù)雜度的同時也提高系統(tǒng)的查詢效率。

    三、Power-filter的設(shè)計與實現(xiàn)

    (一)SpringBoot 消息序列化原理

    SpringBoot使用消息轉(zhuǎn)換器對結(jié)果集進(jìn)行序列化,原理圖如圖1:

    從圖2可知,客戶端發(fā)送消息時,消息轉(zhuǎn)換器的作用是將對象序列化為某一格式報文,然后將報文發(fā)送另一端;接收消息時,消息轉(zhuǎn)換器作用是將某一格式報文轉(zhuǎn)換為對象。

    SpringBoot框架內(nèi)置了很多HTTP消息轉(zhuǎn)換器,不同消息類型轉(zhuǎn)換器處理不同Content-type類型數(shù)據(jù)。如MappingJackson2HttpMessageConverter處理請求類型為application/json類型數(shù)據(jù), StringHttpMessageConverter 處理類型為為 text/

    html類型數(shù)據(jù)等。在框架內(nèi)部會根據(jù)不同請求類型值選擇不同類型轉(zhuǎn)換器進(jìn)行消息轉(zhuǎn)換。目前,結(jié)果集的序列化過程就是通過默認(rèn)名為MappingJackson2HttpMessageConverter的轉(zhuǎn)換器來實現(xiàn)的。

    SpringBoot框架提供了HTTP消息轉(zhuǎn)換器的處理接口,允許開發(fā)者自定義消息序列化規(guī)則,因此可通過實現(xiàn)消息轉(zhuǎn)換器處理接口,用于替換原有處理application/json類型數(shù)據(jù)的轉(zhuǎn)換器來達(dá)到動態(tài)過濾屬性字段的需求。

    (二)Power-filter設(shè)計思路

    Power-filter的設(shè)計目的是為了在原有的框架上擴(kuò)展功能,適應(yīng)多變的接口需求。通過深入分析 SpringBoot 消息序列化原理,結(jié)合需求,筆者得出如圖2的設(shè)計思路。

    圖2中標(biāo)識①②③的區(qū)域是Power-filter插件實現(xiàn)的關(guān)鍵點:①允許開發(fā)者根據(jù)不同業(yè)務(wù)接口需求靈活設(shè)置序列化規(guī)則。②請求發(fā)起時,框架能夠獲取到針對該請求設(shè)置的過濾規(guī)則,并緩存它。③SpringBoot調(diào)用自定義的消息轉(zhuǎn)換器,獲取相應(yīng)規(guī)則,解析并應(yīng)用規(guī)則進(jìn)行消息序列化。

    (三)Power-filter實現(xiàn)方法

    針對圖2的設(shè)計思路中提到的三個關(guān)鍵點,實現(xiàn)方式如下:

    (1)對于①,筆者使用注解的方式進(jìn)行實現(xiàn)。Java 注解又稱 Java 標(biāo)注,它允許Java 語言中的類、方法、變量、參數(shù)和包等都可以被標(biāo)注。Power-filter新定義的注解如下:

    注解1:PowerJsonFilter

    @Retention(RUNTIME)

    @Target(value = {ElementType.METHOD})

    @Repeatable(value=PowerJsonFilters.class)

    public @interface PowerJsonFilter {

    Class<?> clazz();

    String[] include() default {};// include為對象需要包含的字段

    }

    注解2:PowerJsonFilters

    @Retention(RUNTIME)

    @Target({METHOD })

    public @interface PowerJsonFilters {

    PowerJsonFilter[] value();

    }

    從代碼中可以看出,兩個注解只能使用在方法上,注解2是注解1的數(shù)組形態(tài),可支持多規(guī)則設(shè)置。注解1接收兩個參數(shù):

    clazz:用于指示哪些實體bean需要消息序列化。如 clazz = SysDepart.class

    include:為字符串?dāng)?shù)組類型,用于指示需要消息序列化的實體bean中哪些屬性可以被序列化,它的格式如下:include = {"字段1","字段2","字段m","字段x:{字段x-1, 字段x-2:{ 字段x-2-1,[字段y:{…}]}}","字段n"}。舉例說明該格式的含義,對于注解:@PowerJsonFilters({@PowerJsonFilter(clazz = SysDepart.class,include= {"departId","departName" ,"parentDepart:{departName,school:

    {schoolName}}"}))。它的含義是:對于SysDepart實體bean,需要對其屬性"departId","departName","parentDepart"進(jìn)行序列化,特別的對于parentDepart屬性,其所屬類型不是簡單字符串、整形等常用數(shù)據(jù)類型,而是用戶自定義的實體,parentDepart:{departName,school:{schoolName}}意味著僅需要序列化parentDepart所屬實體的"departName","school"屬性。對于school屬性也做同樣的解析。該規(guī)則支持多重嵌套,只要開發(fā)人員設(shè)置合理,即可避免實體bean的雙向關(guān)聯(lián)查詢導(dǎo)致的堆棧溢出錯誤。

    (2)對于②,使用AOP編程思想,定義新的切入點,實現(xiàn)流程圖如圖3:

    (3)對于③,需要遵守SpringBoot框架的消息轉(zhuǎn)換器的接口規(guī)范進(jìn)行實現(xiàn),實現(xiàn)流程如圖4:

    四、Power-filter應(yīng)用與對比測試

    (一)Power-filter安裝與應(yīng)用

    Power-filter的設(shè)計初衷是解決SpringBoot對結(jié)果集進(jìn)行序列化時遇到諸多不便問題,因此Power-filter僅是SpringBoot的有益補(bǔ)充,它的安裝使用依賴于SpringBoot框架。Power-filter的安裝使用步驟為:

    (1)在SpringBoot啟動方法上增加注解掃描范圍,例如:@SpringBootApplication(scanBasePackages = {"xxx.xxx.xxx","com.hanb.filterJson"})

    (2)刪除原有消息轉(zhuǎn)換器,增加自定義的消息轉(zhuǎn)換器,代碼如下:

    public void configureMessageConverters(List> converters) {

    for (int i = converters.size() - 1; i >= 0; i--) {

    //找到并刪除默認(rèn)的消息轉(zhuǎn)換器

    }

    //聲明自定義消息轉(zhuǎn)換器并加入消息轉(zhuǎn)換器轉(zhuǎn)換鏈

    PowerHttpMessageConverter myConverter=new PowerHttpMessageConverter();

    converters.add(myConverter);

    }

    (3)在需要定義序列化規(guī)則的方法上增加注解,代碼示例如下:

    @RestController

    public class XxAction {

    @PowerJsonFilters({@PowerJsonFilter(clazz = SysDepart.class,include =? {"departId","school","parentDepart:{departName,school:{schoolName}}"}),

    @PowerJsonFilter(clazz = School.class,include = {"schoolAddr"})})

    public Object queryDepart(參數(shù)列表)? throws Exception{

    //業(yè)務(wù)邏輯代碼

    }? }

    通過(1)、(2)的安裝,(3)的應(yīng)用,程序運行后即可得出規(guī)則設(shè)定的結(jié)果,如下示例:

    [{"departId":1,"school":{"schoolAddr":"學(xué)院路"}},{"departId":2,"parentDepart":{"departName":"1級部門","school":{"schoolName":"財經(jīng)"}},"school":{"schoolName":"財經(jīng)"}}]

    (二)SpringBoot使用Power-filter插件序列化效率前后對比

    Power-filter能夠通過設(shè)置過濾規(guī)則靈活對結(jié)果集進(jìn)行過濾,為了對比應(yīng)用插件前后的效率,筆者在同一軟硬件環(huán)境下分別做了單表查詢結(jié)果集序列化,多表關(guān)聯(lián)查詢結(jié)果集序列化對比測試。

    (1)單表查詢100條記錄序列化對比如圖5:

    (2)多表關(guān)聯(lián)查詢100條記錄序列化對比如圖6。

    通過對比測試可發(fā)現(xiàn),對于單表查詢,兩者對查詢結(jié)果的序列化耗時相差并不大,對于多表關(guān)聯(lián)查詢,框架由于應(yīng)用了過濾規(guī)則避免了無用屬性的關(guān)聯(lián)查詢與序列化,其效率大大提高。

    五、總結(jié)

    Power-filter是依賴于SpringBoot框架的插件,該插件使用AOP編程思想進(jìn)行編寫,主要做了以下3點工作:

    (1)新增注解,用于對查詢結(jié)果集序列化規(guī)則進(jìn)行配置。

    (2)新增過濾規(guī)則,使用堆數(shù)據(jù)結(jié)構(gòu)完成對實體bean的多層嵌套比對。

    (3)實現(xiàn)自定義的消息轉(zhuǎn)換器,替換SpringBoot原生插件,完成結(jié)果集的序列化。

    通過對比測試發(fā)現(xiàn),使用了Power-filter插件的SpringBoot有以下4點優(yōu)勢:

    (1)配置規(guī)則簡單易懂,學(xué)習(xí)成本極低。

    (2)對結(jié)果集序列化按規(guī)則進(jìn)行配置,使得業(yè)務(wù)接口更加靈活,降低開發(fā)者的大量重復(fù)性工作。

    (3)通過規(guī)則配置,可有效避免無用屬性字段的關(guān)聯(lián)查詢,節(jié)約了系統(tǒng)開銷。

    (4)通過規(guī)則配置,可有效避免雙向關(guān)聯(lián)實體bean引起的循環(huán)查詢,從而導(dǎo)致的堆棧溢出錯誤。

    Power-filter作為SpringBoot的非原生插件,雖然有著自身的優(yōu)點,但也存在著不足:

    (1)需要做額外配置,插件方可生效。

    (2)過濾規(guī)則暫不支持通配符配置,規(guī)則書寫略顯麻煩。

    (3)規(guī)則配置方式單一,目前僅支持包含設(shè)置,不支持排除設(shè)置。

    對于不足中的(2)和(3),筆者將繼續(xù)完善該插件,爭取早日彌補(bǔ)其不足。

    總之,Power-filter作為SpringBoot的有益補(bǔ)充,雖然有些許不足,但仍能夠為使用SpringBoot框架作為開發(fā)技術(shù)棧的項目組提供借鑒與參考,為其快速完成接口開發(fā)提供有效的解決方案。

    參考文獻(xiàn):

    [1]小馬哥. Spring Boot編程思想(核心篇)[M].北京:電子工業(yè)出版社,2019:155-187.

    [2][美] Bruce Eckel.Think In Java)[M].北京:機(jī)械工業(yè)出版社,2007:162-199.

    [3]王曉東,計算機(jī)算法設(shè)計與分析(第5版))[M],北京:電子工業(yè)出版社,2018:202-351.

    作者簡介: 王春波(1978-),男,漢族,黑龍江海倫市人,碩士,信息系統(tǒng)項目高級管理師,研究方向:軟件工程、大數(shù)據(jù)理論、神經(jīng)網(wǎng)路算法;葛雷(1973-),男,漢族,黑龍江哈爾濱人,碩士,教授,研究方向:軟件工程、教育理論;文雪巍(1979-),女,漢族,黑龍江哈爾濱人,碩士,教授,主研究方向:軟件工程、人工智能。

    猜你喜歡
    堆棧序列化
    如何建構(gòu)序列化閱讀教學(xué)
    甘肅教育(2020年14期)2020-09-11 07:58:36
    嵌入式軟件堆棧溢出的動態(tài)檢測方案設(shè)計*
    基于堆棧自編碼降維的武器裝備體系效能預(yù)測
    Java 反序列化漏洞研究
    作文訓(xùn)練微格化、序列化初探
    語文知識(2015年12期)2015-02-28 22:02:15
    Java序列化技術(shù)的探討
    一種用于分析MCS-51目標(biāo)碼堆棧深度的方法
    堆棧技術(shù)及其在程序設(shè)計中的靈活運用
    亚洲最大成人中文| 中文精品一卡2卡3卡4更新| 色综合站精品国产| 水蜜桃什么品种好| 男人和女人高潮做爰伦理| 干丝袜人妻中文字幕| 赤兔流量卡办理| 精品不卡国产一区二区三区| 精品一区二区免费观看| 国产精品久久视频播放| 三级国产精品片| 国产 一区 欧美 日韩| 免费无遮挡裸体视频| 亚洲国产精品sss在线观看| 精品一区在线观看国产| 51国产日韩欧美| 天堂影院成人在线观看| 亚洲电影在线观看av| 五月伊人婷婷丁香| 欧美激情在线99| 男人狂女人下面高潮的视频| av在线亚洲专区| av一本久久久久| 超碰av人人做人人爽久久| av.在线天堂| 日韩,欧美,国产一区二区三区| 两个人的视频大全免费| 久久久久精品久久久久真实原创| 亚洲欧洲日产国产| 性插视频无遮挡在线免费观看| or卡值多少钱| 老司机影院成人| 欧美成人精品欧美一级黄| 日本一本二区三区精品| 成人美女网站在线观看视频| 麻豆成人av视频| 我的女老师完整版在线观看| 2022亚洲国产成人精品| 日韩中字成人| 七月丁香在线播放| 国产国拍精品亚洲av在线观看| 久久久精品欧美日韩精品| 啦啦啦中文免费视频观看日本| 丰满少妇做爰视频| 欧美精品国产亚洲| 国产精品一区二区三区四区久久| 亚洲国产精品专区欧美| 欧美成人a在线观看| 九九爱精品视频在线观看| www.av在线官网国产| 97人妻精品一区二区三区麻豆| 观看美女的网站| 欧美3d第一页| 亚洲色图av天堂| 最新中文字幕久久久久| 最后的刺客免费高清国语| 色尼玛亚洲综合影院| 国产黄片美女视频| 国产精品国产三级国产av玫瑰| 成人无遮挡网站| 别揉我奶头 嗯啊视频| 网址你懂的国产日韩在线| 欧美bdsm另类| 一级毛片我不卡| 国产久久久一区二区三区| 欧美不卡视频在线免费观看| 亚洲av男天堂| 午夜免费激情av| 观看免费一级毛片| 久久久久久久国产电影| 成人午夜精彩视频在线观看| 亚洲真实伦在线观看| 免费看美女性在线毛片视频| 精品99又大又爽又粗少妇毛片| 欧美日本视频| 在线天堂最新版资源| 1000部很黄的大片| 极品少妇高潮喷水抽搐| 秋霞在线观看毛片| 极品少妇高潮喷水抽搐| 久久久久免费精品人妻一区二区| 日韩欧美一区视频在线观看 | 国产伦精品一区二区三区四那| 少妇高潮的动态图| 成人毛片60女人毛片免费| 人人妻人人澡欧美一区二区| 日韩大片免费观看网站| 欧美性猛交╳xxx乱大交人| 91久久精品国产一区二区成人| 男人爽女人下面视频在线观看| 国产单亲对白刺激| 国产一区有黄有色的免费视频 | 亚洲乱码一区二区免费版| 亚洲av成人精品一二三区| 激情五月婷婷亚洲| 亚洲国产最新在线播放| 精品国内亚洲2022精品成人| 日本与韩国留学比较| 日本免费a在线| 午夜精品国产一区二区电影 | 欧美激情久久久久久爽电影| 男女下面进入的视频免费午夜| 在线观看免费高清a一片| 亚洲av在线观看美女高潮| 欧美日韩综合久久久久久| 99久久中文字幕三级久久日本| 2021少妇久久久久久久久久久| 日韩视频在线欧美| 国产真实伦视频高清在线观看| 久久99热这里只频精品6学生| 亚洲av不卡在线观看| 伦理电影大哥的女人| 国产伦精品一区二区三区视频9| 欧美成人一区二区免费高清观看| 中文字幕人妻熟人妻熟丝袜美| 国产av码专区亚洲av| 亚洲av.av天堂| 天天躁日日操中文字幕| 毛片女人毛片| 亚洲自拍偷在线| 亚洲乱码一区二区免费版| 少妇被粗大猛烈的视频| 97在线视频观看| 久久97久久精品| 日韩 亚洲 欧美在线| 国产日韩欧美在线精品| 黄色日韩在线| 两个人的视频大全免费| 国产真实伦视频高清在线观看| 夫妻午夜视频| 搡老乐熟女国产| 欧美成人a在线观看| 乱系列少妇在线播放| 真实男女啪啪啪动态图| 91狼人影院| 高清午夜精品一区二区三区| 热99在线观看视频| 男女视频在线观看网站免费| 亚洲精品成人av观看孕妇| 欧美97在线视频| 高清午夜精品一区二区三区| 精品国产三级普通话版| 综合色丁香网| 女的被弄到高潮叫床怎么办| 国产午夜精品论理片| 亚洲自拍偷在线| 91久久精品国产一区二区成人| 亚洲精品乱码久久久v下载方式| 成人亚洲欧美一区二区av| 最近最新中文字幕免费大全7| 一本一本综合久久| 少妇的逼水好多| 91aial.com中文字幕在线观看| 亚洲精品国产成人久久av| 精品一区二区三区视频在线| 欧美变态另类bdsm刘玥| 日韩精品青青久久久久久| 激情 狠狠 欧美| 69av精品久久久久久| 国产精品久久久久久精品电影小说 | 亚洲三级黄色毛片| 欧美精品一区二区大全| av一本久久久久| 99热全是精品| 亚洲,欧美,日韩| 男人舔女人下体高潮全视频| 欧美精品国产亚洲| 午夜免费激情av| 一级爰片在线观看| 永久网站在线| 欧美精品国产亚洲| 少妇熟女欧美另类| 成人一区二区视频在线观看| 少妇高潮的动态图| 久久精品国产自在天天线| 深夜a级毛片| 国产视频首页在线观看| a级毛色黄片| 男人爽女人下面视频在线观看| 一级毛片久久久久久久久女| 免费看日本二区| 亚洲精品一区蜜桃| 久久久久久久久久久免费av| 精品久久久久久电影网| 18禁裸乳无遮挡免费网站照片| 女人被狂操c到高潮| 亚洲,欧美,日韩| 在线观看一区二区三区| 成人午夜高清在线视频| 99久国产av精品| 在线a可以看的网站| 大话2 男鬼变身卡| xxx大片免费视频| 亚洲高清免费不卡视频| 中文字幕亚洲精品专区| 久久鲁丝午夜福利片| 日本色播在线视频| 精品一区在线观看国产| 能在线免费观看的黄片| 国产综合懂色| 波野结衣二区三区在线| 亚洲综合色惰| 婷婷色综合www| 成人综合一区亚洲| 永久免费av网站大全| 亚洲内射少妇av| 国产精品美女特级片免费视频播放器| 成人午夜精彩视频在线观看| 男女啪啪激烈高潮av片| 少妇丰满av| 91午夜精品亚洲一区二区三区| 一级二级三级毛片免费看| 亚洲av电影不卡..在线观看| 久久久久久久久久成人| 婷婷色综合大香蕉| 午夜福利视频精品| 一级爰片在线观看| 免费看a级黄色片| 久久久精品欧美日韩精品| 日本黄色片子视频| 91狼人影院| 91av网一区二区| 乱人视频在线观看| 国产乱来视频区| 小蜜桃在线观看免费完整版高清| 91午夜精品亚洲一区二区三区| 久久久久久国产a免费观看| 国产精品熟女久久久久浪| 中文字幕久久专区| 国产有黄有色有爽视频| 久久这里只有精品中国| 一区二区三区乱码不卡18| 99久久精品国产国产毛片| 日韩电影二区| 成人毛片a级毛片在线播放| 中文精品一卡2卡3卡4更新| 亚洲国产色片| 久久精品国产亚洲av天美| 日韩人妻高清精品专区| 麻豆国产97在线/欧美| 亚洲国产最新在线播放| 观看免费一级毛片| 大话2 男鬼变身卡| 国产亚洲午夜精品一区二区久久 | 国产视频首页在线观看| 99热这里只有是精品在线观看| 免费看不卡的av| 91aial.com中文字幕在线观看| 日日干狠狠操夜夜爽| 一级av片app| 亚洲,欧美,日韩| 草草在线视频免费看| av国产久精品久网站免费入址| 伊人久久国产一区二区| 国内少妇人妻偷人精品xxx网站| 精品一区在线观看国产| 熟妇人妻不卡中文字幕| 国产高清不卡午夜福利| 九九久久精品国产亚洲av麻豆| 天天躁日日操中文字幕| 丝瓜视频免费看黄片| 在线a可以看的网站| 国产成人精品婷婷| 狂野欧美白嫩少妇大欣赏| 99久久精品一区二区三区| 在线观看av片永久免费下载| 日韩成人av中文字幕在线观看| 高清毛片免费看| 人体艺术视频欧美日本| 国产欧美另类精品又又久久亚洲欧美| 国语对白做爰xxxⅹ性视频网站| 国产大屁股一区二区在线视频| 国内精品一区二区在线观看| 美女大奶头视频| 国产黄片视频在线免费观看| 老师上课跳d突然被开到最大视频| 国产黄色免费在线视频| 国产精品日韩av在线免费观看| 最近的中文字幕免费完整| 精品酒店卫生间| 亚洲自偷自拍三级| 99热这里只有是精品在线观看| 亚洲国产日韩欧美精品在线观看| 黄片无遮挡物在线观看| 性插视频无遮挡在线免费观看| 久久精品熟女亚洲av麻豆精品 | 一本一本综合久久| 丝袜喷水一区| 亚洲av二区三区四区| 国产免费一级a男人的天堂| 国产午夜精品久久久久久一区二区三区| 激情 狠狠 欧美| 免费看av在线观看网站| 免费av不卡在线播放| 色综合站精品国产| 晚上一个人看的免费电影| 插逼视频在线观看| 有码 亚洲区| 人妻系列 视频| 日韩国内少妇激情av| 搡女人真爽免费视频火全软件| 日韩亚洲欧美综合| 联通29元200g的流量卡| 男人舔奶头视频| 亚洲最大成人av| 高清毛片免费看| 神马国产精品三级电影在线观看| 国精品久久久久久国模美| 亚洲人成网站高清观看| 国产免费一级a男人的天堂| 国产高清国产精品国产三级 | 亚洲国产欧美在线一区| 久热久热在线精品观看| 男的添女的下面高潮视频| 嫩草影院入口| 久久久欧美国产精品| 亚洲国产av新网站| 在现免费观看毛片| 国产亚洲精品av在线| 久久久成人免费电影| a级毛色黄片| 老司机影院毛片| 舔av片在线| 亚洲图色成人| 国内精品美女久久久久久| 青春草亚洲视频在线观看| 久久久久久久大尺度免费视频| 成人高潮视频无遮挡免费网站| 亚洲av.av天堂| 麻豆av噜噜一区二区三区| 国产老妇女一区| 观看美女的网站| 国产激情偷乱视频一区二区| 精华霜和精华液先用哪个| 插阴视频在线观看视频| 久久久久免费精品人妻一区二区| 精品久久久久久电影网| 午夜福利视频精品| 午夜精品一区二区三区免费看| 日韩精品青青久久久久久| 久久综合国产亚洲精品| 欧美成人午夜免费资源| 日韩一本色道免费dvd| av在线天堂中文字幕| 久久久久久久大尺度免费视频| 欧美区成人在线视频| 亚洲国产欧美人成| 蜜桃久久精品国产亚洲av| 日韩欧美 国产精品| 亚洲av一区综合| 国产亚洲av片在线观看秒播厂 | 免费播放大片免费观看视频在线观看| 卡戴珊不雅视频在线播放| 国产成人a区在线观看| 汤姆久久久久久久影院中文字幕 | 久久99热6这里只有精品| 大陆偷拍与自拍| 欧美另类一区| 建设人人有责人人尽责人人享有的 | 秋霞伦理黄片| 国产精品国产三级专区第一集| 六月丁香七月| 日韩在线高清观看一区二区三区| 亚洲美女视频黄频| 国产精品一区www在线观看| 十八禁网站网址无遮挡 | 男人舔女人下体高潮全视频| 亚洲国产精品成人久久小说| 内射极品少妇av片p| 爱豆传媒免费全集在线观看| 三级国产精品片| 色综合色国产| 在线免费观看的www视频| 国产单亲对白刺激| 1000部很黄的大片| 美女xxoo啪啪120秒动态图| 国产免费又黄又爽又色| 最新中文字幕久久久久| 精品久久久精品久久久| 97超碰精品成人国产| 久久久久久久久大av| 久久精品久久久久久久性| 欧美最新免费一区二区三区| 一级毛片电影观看| 免费黄网站久久成人精品| 午夜福利网站1000一区二区三区| 一个人观看的视频www高清免费观看| 小蜜桃在线观看免费完整版高清| 五月玫瑰六月丁香| 亚洲美女搞黄在线观看| 精品人妻偷拍中文字幕| 六月丁香七月| 国产伦一二天堂av在线观看| 日韩大片免费观看网站| 欧美成人午夜免费资源| 国产极品天堂在线| 日本av手机在线免费观看| 日韩欧美一区视频在线观看 | 嫩草影院新地址| 精品久久久久久久人妻蜜臀av| 国产成人精品婷婷| 亚洲av电影不卡..在线观看| 男的添女的下面高潮视频| 久久午夜福利片| 中文资源天堂在线| 丰满人妻一区二区三区视频av| 亚洲精品456在线播放app| 国产高潮美女av| 美女xxoo啪啪120秒动态图| 秋霞伦理黄片| 99久久中文字幕三级久久日本| 国产精品伦人一区二区| 我的老师免费观看完整版| 国产高清国产精品国产三级 | 久久久精品欧美日韩精品| 日本一本二区三区精品| 精华霜和精华液先用哪个| 国产视频内射| 国产永久视频网站| 青春草亚洲视频在线观看| 国产欧美日韩精品一区二区| 国产亚洲91精品色在线| 精品久久久久久久久久久久久| 少妇人妻一区二区三区视频| 一级毛片 在线播放| 日韩 亚洲 欧美在线| 看十八女毛片水多多多| 国产精品精品国产色婷婷| 国产一区有黄有色的免费视频 | 能在线免费看毛片的网站| 亚洲av二区三区四区| 观看美女的网站| 小蜜桃在线观看免费完整版高清| 精品午夜福利在线看| 九九爱精品视频在线观看| 亚洲精品亚洲一区二区| 亚洲欧美一区二区三区国产| 国产高潮美女av| 婷婷色综合www| 亚洲欧美日韩东京热| 青青草视频在线视频观看| 欧美潮喷喷水| 成人国产麻豆网| 日本黄色片子视频| av网站免费在线观看视频 | 日韩视频在线欧美| 精品一区二区免费观看| 极品教师在线视频| 国产精品无大码| 99热全是精品| 亚洲精品亚洲一区二区| 熟女人妻精品中文字幕| 99视频精品全部免费 在线| 最近中文字幕高清免费大全6| 小蜜桃在线观看免费完整版高清| 黑人高潮一二区| 天堂影院成人在线观看| 高清日韩中文字幕在线| 久久草成人影院| 只有这里有精品99| 国产精品国产三级国产专区5o| 日韩一本色道免费dvd| 在线免费十八禁| 99视频精品全部免费 在线| 国产精品久久久久久av不卡| 九草在线视频观看| 欧美性猛交╳xxx乱大交人| 久久久久久久久久成人| 成人漫画全彩无遮挡| av专区在线播放| www.色视频.com| 蜜桃亚洲精品一区二区三区| 最近最新中文字幕大全电影3| 国产午夜精品久久久久久一区二区三区| av女优亚洲男人天堂| 国内精品一区二区在线观看| av在线天堂中文字幕| 精品一区二区三卡| 日韩制服骚丝袜av| 成人亚洲精品av一区二区| 欧美日韩在线观看h| 超碰97精品在线观看| 久久99精品国语久久久| av女优亚洲男人天堂| 日韩欧美 国产精品| 狂野欧美白嫩少妇大欣赏| 神马国产精品三级电影在线观看| 建设人人有责人人尽责人人享有的 | 五月伊人婷婷丁香| 又爽又黄无遮挡网站| 2022亚洲国产成人精品| 日韩一区二区三区影片| 午夜日本视频在线| 亚洲精品日本国产第一区| 国产午夜福利久久久久久| 国产片特级美女逼逼视频| 精品人妻偷拍中文字幕| 久久人人爽人人片av| 亚洲真实伦在线观看| 国产精品美女特级片免费视频播放器| 中文天堂在线官网| 午夜精品在线福利| 中文天堂在线官网| 国产亚洲精品久久久com| 精品国产一区二区三区久久久樱花 | 亚洲精品第二区| 精品人妻偷拍中文字幕| 国产淫片久久久久久久久| 国内精品美女久久久久久| 午夜福利视频1000在线观看| 国产白丝娇喘喷水9色精品| 一级a做视频免费观看| 一级av片app| 五月伊人婷婷丁香| av线在线观看网站| 亚洲综合色惰| 午夜久久久久精精品| 美女国产视频在线观看| 高清在线视频一区二区三区| 亚洲怡红院男人天堂| av黄色大香蕉| 色吧在线观看| 国产一区有黄有色的免费视频 | 午夜爱爱视频在线播放| 国内少妇人妻偷人精品xxx网站| 久久久久精品性色| 午夜福利高清视频| 观看免费一级毛片| 菩萨蛮人人尽说江南好唐韦庄| 久久久久久久久久久丰满| 草草在线视频免费看| av黄色大香蕉| 美女黄网站色视频| 亚洲在线观看片| 又粗又硬又长又爽又黄的视频| 午夜精品一区二区三区免费看| 色吧在线观看| 成人美女网站在线观看视频| 亚洲国产欧美在线一区| 一级爰片在线观看| 日韩三级伦理在线观看| 久久久久久久亚洲中文字幕| 亚洲国产欧美在线一区| 夜夜爽夜夜爽视频| 嫩草影院精品99| 精品酒店卫生间| 亚洲高清免费不卡视频| 在线天堂最新版资源| 久久国内精品自在自线图片| av.在线天堂| 久久久久精品性色| 日韩精品青青久久久久久| 欧美丝袜亚洲另类| 人人妻人人澡欧美一区二区| 免费看日本二区| 免费播放大片免费观看视频在线观看| 99久久人妻综合| 亚州av有码| 久久精品熟女亚洲av麻豆精品 | av在线老鸭窝| 亚洲内射少妇av| 91精品一卡2卡3卡4卡| 一个人免费在线观看电影| 色综合色国产| 一本久久精品| h日本视频在线播放| 午夜免费激情av| 91久久精品电影网| 色视频www国产| 亚洲国产av新网站| 欧美97在线视频| 激情 狠狠 欧美| 亚洲欧美日韩东京热| 国产免费视频播放在线视频 | 一夜夜www| 免费无遮挡裸体视频| 久久久色成人| 免费看a级黄色片| av线在线观看网站| 一边亲一边摸免费视频| 菩萨蛮人人尽说江南好唐韦庄| 精品久久久久久成人av| 久久国产乱子免费精品| 99热全是精品| 欧美日韩精品成人综合77777| 中文在线观看免费www的网站| 色吧在线观看| 日韩一区二区视频免费看| 亚洲精品久久午夜乱码| 国内精品宾馆在线| 亚洲,欧美,日韩| 春色校园在线视频观看| 国产一区二区在线观看日韩| 小蜜桃在线观看免费完整版高清| 亚洲精品国产av成人精品| 美女大奶头视频| 亚洲av中文字字幕乱码综合| 亚洲综合精品二区| 亚洲精品日韩av片在线观看| 成人午夜精彩视频在线观看| 一区二区三区乱码不卡18| 亚洲成人精品中文字幕电影| 美女被艹到高潮喷水动态| 欧美日韩国产mv在线观看视频 | 亚洲精品aⅴ在线观看| 色尼玛亚洲综合影院| 视频中文字幕在线观看| 一区二区三区高清视频在线| av线在线观看网站| 国产黄色小视频在线观看| 国产精品综合久久久久久久免费| 天堂影院成人在线观看| 国产高清有码在线观看视频| 日韩一本色道免费dvd| 十八禁国产超污无遮挡网站|