久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

SpringBoot+Vue企業(yè)內(nèi)管系統(tǒng)畢設(shè)實(shí)戰(zhàn):從源碼到部署全解析

SpringBoot+Vue企業(yè)內(nèi)管系統(tǒng)畢設(shè)實(shí)戰(zhàn):從源碼到部署全解析 先說實(shí)話如果你正在為一套SpringBootVue的企業(yè)內(nèi)管系統(tǒng)畢設(shè)項(xiàng)目找參考那這個(gè)標(biāo)題本身就說明你已經(jīng)跳出了“隨便做個(gè)CRUD應(yīng)付答辯”的階段。企業(yè)內(nèi)管信息化系統(tǒng)這個(gè)選題在Java Web方向里屬于“上限很高、下限也不低”的類型——做得淺就是用戶管理加幾張表做得深可以延伸到權(quán)限模型、審批流、數(shù)據(jù)權(quán)限甚至工作流引擎。而這套“完整源碼SQL腳本接口文檔”的交付形式恰恰是畢設(shè)最需要的代碼能跑、數(shù)據(jù)能初始化、接口能自測、答辯有底氣。這篇文章我會(huì)從一個(gè)常年接觸這類項(xiàng)目的從業(yè)者視角拆解這套系統(tǒng)到底該怎么看、怎么跑、怎么改。不管你是拿到源碼直接啟動(dòng)還是想搞懂每個(gè)模塊為什么要這樣設(shè)計(jì)或者準(zhǔn)備在答辯時(shí)應(yīng)對(duì)“這個(gè)功能怎么實(shí)現(xiàn)的”這類追問下面的內(nèi)容都能給你實(shí)在的參考。1. 企業(yè)內(nèi)管系統(tǒng)這個(gè)選題為什么它能成為畢設(shè)“常青樹”1.1 選題價(jià)值覆蓋了評(píng)審老師最看重的幾個(gè)能力點(diǎn)企業(yè)內(nèi)管信息化系統(tǒng)說白了就是企業(yè)內(nèi)部用來管人、管事、管流程的那套后臺(tái)系統(tǒng)。學(xué)生會(huì)下意識(shí)覺得“這名字不夠酷”但評(píng)審老師的視角完全不一樣他們要看的是你具不具備完整的信息系統(tǒng)設(shè)計(jì)能力而不是會(huì)不會(huì)用新潮框架寫個(gè)花哨頁面。這類系統(tǒng)天然涵蓋了幾個(gè)能力考察點(diǎn)需求分析能力企業(yè)內(nèi)部管理涉及組織架構(gòu)、員工信息、角色權(quán)限、流程審批這些都是最典型的管理信息系統(tǒng)需求能講清楚就說明你有需求分析意識(shí)。數(shù)據(jù)庫設(shè)計(jì)能力多表關(guān)聯(lián)、一對(duì)多/多對(duì)多關(guān)系、唯一約束、邏輯刪除、審計(jì)字段在一個(gè)內(nèi)管系統(tǒng)里幾乎全都能用上。比單純做個(gè)“圖書管理”不知道高到哪里去了。前后端協(xié)作能力SpringBoot提供RESTful APIVue負(fù)責(zé)頁面渲染和交互這套協(xié)作模式就是目前企業(yè)級(jí)開發(fā)的主流形態(tài)。能跑通前后端分離比在JSP里拼字符串輸出HTML高出一個(gè)維度。工程化意識(shí)SQL腳本、接口文檔、項(xiàng)目結(jié)構(gòu)分層這些都是企業(yè)真實(shí)開發(fā)中“必須有”的東西。很多畢設(shè)項(xiàng)目代碼能跑但缺腳本缺文檔導(dǎo)致老師根本無法復(fù)現(xiàn)分?jǐn)?shù)自然上不去。所以我一直覺得企業(yè)內(nèi)管系統(tǒng)不是沒亮點(diǎn)而是很多人把它做成了“作業(yè)”沒做成“產(chǎn)品”。同一套功能交付質(zhì)量不同結(jié)果天差地別。1.2 這類系統(tǒng)通常會(huì)包含哪些核心功能模塊雖然手頭這份具體的項(xiàng)目正文沒有展開但基于“企業(yè)內(nèi)管信息化系統(tǒng)”這個(gè)方向的通用定位再加上SpringBootVue這個(gè)技術(shù)棧組合大概率會(huì)包含這樣一組模塊系統(tǒng)管理用戶、角色、菜單、組織架構(gòu)部門、崗位、審批流程、公告通知、以及一些基礎(chǔ)的業(yè)務(wù)數(shù)據(jù)管理。其中系統(tǒng)管理和權(quán)限設(shè)計(jì)永遠(yuǎn)是這類項(xiàng)目的核心看點(diǎn)。模塊劃分其實(shí)反映的是需求分析階段的視野。最低配的畢設(shè)只有用戶表加登錄中等水平會(huì)有角色區(qū)分做得好的會(huì)引入RBAC模型并配上前端動(dòng)態(tài)路由。這三種層次答辯時(shí)老師幾眼就能分辨出來。如果是拿到源碼想改造建議優(yōu)先把權(quán)限模塊吃透因?yàn)樗鼪Q定了整個(gè)系統(tǒng)的骨架走向。1.3 選這套系統(tǒng)的三個(gè)現(xiàn)實(shí)考量第一個(gè)是數(shù)據(jù)閉環(huán)。從建庫腳本、初始化數(shù)據(jù)到后端接口、前端頁面一條線串下來是完整的數(shù)據(jù)流這對(duì)回答答辯問題特別重要。老師要是問“你這條數(shù)據(jù)是怎么從數(shù)據(jù)庫到頁面的”你如果能從Mapper層一路講到Vue組件那通過基本就穩(wěn)了。第二個(gè)是可展示性。企業(yè)內(nèi)管系統(tǒng)的頁面形態(tài)天然偏后臺(tái)管理風(fēng)格表格、彈窗、表單、樹形結(jié)構(gòu)這些組件使用頻率高Vue生態(tài)里Element UI或者Ant Design Vue都能很好地支撐。演示的時(shí)候視覺上規(guī)整、操作路徑清晰不會(huì)出現(xiàn)“頁面過于簡陋”的尷尬。第三個(gè)是可擴(kuò)展性。如果你不甘心只做一個(gè)原封不動(dòng)的畢設(shè)這種系統(tǒng)后期的可玩性非常高——加一個(gè)數(shù)據(jù)可視化大屏、集成一個(gè)工作流引擎、做一套消息通知都不是傷筋動(dòng)骨的改動(dòng)。擴(kuò)展成本低意味著你在答辯時(shí)可以底氣十足地說“未來可以繼續(xù)完善”而不是心虛地一筆帶過。2. 技術(shù)棧選型SpringBootVue為什么是“剛剛好”的組合2.1 后端選SpringBoot不是版本越高越好是“壓得住”才好SpringBoot在這幾年已經(jīng)成了Java后端開發(fā)的事實(shí)標(biāo)準(zhǔn)這一點(diǎn)沒什么爭議。但畢設(shè)場景下有個(gè)特別容易踩的坑版本選擇。我自己見過太多人打開Spring Initializr直接選個(gè)最新版本結(jié)果JDK版本不匹配、Maven依賴?yán)幌聛怼?Tomcat內(nèi)嵌版本和代碼不兼容光修環(huán)境就耗掉了一周。以這個(gè)項(xiàng)目為例如果是拿來做畢設(shè)或者學(xué)習(xí)復(fù)現(xiàn)我更建議保守策略SpringBoot 2.7.x JDK 8或者SpringBoot 3.x JDK 17。兩種組合都行但別混搭。原因很簡單SpringBoot 2.7.x 是2.x系列的最終版本資料多、踩坑記錄全、兼容老代碼和大部分開源組件對(duì)畢設(shè)來說最穩(wěn)。如果非要用新特性SpringBoot 3.x 要求JDK 17及以上且很多第三方組件的兼容版本需要重新確認(rèn)比如一些舊版的代碼生成器、工具類可能直接報(bào)錯(cuò)。還有一個(gè)隱藏的坑是打包部署環(huán)境?,F(xiàn)在很多學(xué)生的機(jī)器上裝了Docker Desktop想鏡像部署但又搞不定Dockerfile。我的建議是畢設(shè)階段老老實(shí)實(shí)用mvn clean package打jar包java -jar直接跑。等項(xiàng)目答辯結(jié)束后再折騰容器化也不遲。標(biāo)題里既然寫了“完整項(xiàng)目源碼”那啟動(dòng)腳本或者部署說明文檔里最好得寫清楚JDK和Maven版本要求否則換臺(tái)機(jī)器就是一場災(zāi)難。2.2 前端選Vue組件化開發(fā)讓頁面“長出來”而不是“寫出來”Vue在畢設(shè)中的優(yōu)勢(shì)非常直白組件化 數(shù)據(jù)綁定 生態(tài)成熟。企業(yè)后臺(tái)管理系統(tǒng)有大量重復(fù)的頁面結(jié)構(gòu)——搜索欄、表格、分頁器、彈窗表單如果用原生JS寫每寫一個(gè)頁面都是重復(fù)勞動(dòng)而Vue配合Element UI組件庫頁面基本是通過配置快速“拼”出來的。具體到這套內(nèi)管系統(tǒng)前端幾個(gè)核心點(diǎn)要搞清楚vue-router路由怎么配置、嵌套路由怎么處理、路由守衛(wèi)用來做什么。尤其是權(quán)限控制前端路由守衛(wèi)要根據(jù)登錄狀態(tài)和角色信息決定能不能進(jìn)入某個(gè)頁面這是答辯的高頻考點(diǎn)。axios封裝統(tǒng)一處理請(qǐng)求頭、token注入、響應(yīng)攔截、錯(cuò)誤提示。如果項(xiàng)目里每個(gè)頁面都直接調(diào)axios說明封裝意識(shí)不夠老師很容易追問。Vuex或Pinia狀態(tài)管理登錄后的用戶信息、token、菜單權(quán)限這些全局?jǐn)?shù)據(jù)放在狀態(tài)管理里而不是每個(gè)頁面重復(fù)請(qǐng)求這也屬于“工程習(xí)慣”層面的加分項(xiàng)。環(huán)境配置Vue項(xiàng)目本地開發(fā)時(shí)要配代理解決跨域打包時(shí)要改publicPath和接口地址。這些細(xì)節(jié)不復(fù)雜但沒配好就會(huì)遇到“本地好好的一打包就白屏”的靈異事件。一個(gè)常見的認(rèn)知誤區(qū)是“前端就是套模板”。實(shí)際上如果不懂Vue的生命周期、不懂組件通信、不懂路由守衛(wèi)哪怕拿到源碼也改不動(dòng)。所以后面我會(huì)專門講怎么通過源碼理解Vue項(xiàng)目的組織方式。2.3 為什么這套組合適合做畢設(shè)而不是其他花哨的組合我見過不少學(xué)生用Spring Cloud微服務(wù)架構(gòu)做畢設(shè)結(jié)果一個(gè)服務(wù)都拆不明白還要處理服務(wù)注冊(cè)發(fā)現(xiàn)、配置中心、網(wǎng)關(guān)路由、分布式事務(wù)。坦白說這些東西在真實(shí)企業(yè)里都未必人人都能玩明白放畢設(shè)里純屬給自己挖坑。企業(yè)內(nèi)管系統(tǒng)的業(yè)務(wù)復(fù)雜度使用單體SpringBoot 經(jīng)典Vue前后端分離是效率最高、演示最穩(wěn)、老師最容易認(rèn)可的組合。它處于一個(gè)非常微妙的位置比基礎(chǔ)課設(shè)復(fù)雜又遠(yuǎn)沒到微服務(wù)的復(fù)雜度。這個(gè)“中間檔”恰恰是本科畢設(shè)最合適的難度區(qū)間——既不至于顯得沒技術(shù)含量又不會(huì)因?yàn)檫^度設(shè)計(jì)而失控。MySQL作為存儲(chǔ)層是最合理的選擇開源、通用、Navicat圖形化操作方便。標(biāo)題里強(qiáng)調(diào)的“SQL腳本”指的就是建庫建表腳本和初始數(shù)據(jù)腳本這兩個(gè)文件在畢設(shè)評(píng)審中幾乎決定了老師能否快速復(fù)現(xiàn)你的系統(tǒng)。3. 源碼閱讀順序與目錄結(jié)構(gòu)拿到項(xiàng)目先別急著跑3.1 后端源碼結(jié)構(gòu)怎么拆解絕大多數(shù)SpringBoot項(xiàng)目的結(jié)構(gòu)都遵循分層架構(gòu)拿到源碼后建議按這個(gè)順序來看src/main/java ├── com.xxx.xxx │ ├── controller接口層只負(fù)責(zé)參數(shù)接收和結(jié)果返回 │ ├── service業(yè)務(wù)邏輯層核心邏輯都在這里 │ ├── mapper數(shù)據(jù)訪問層MyBatis的Mapper接口 │ ├── entity實(shí)體類對(duì)應(yīng)數(shù)據(jù)庫表結(jié)構(gòu) │ ├── config配置類比如跨域配置、攔截器配置 │ ├── common通用工具類和統(tǒng)一返回結(jié)果 │ └── ...重點(diǎn)看三個(gè)地方Controller層怎么定義接口、Service層怎么處理事務(wù)和業(yè)務(wù)、Mapper層怎么和數(shù)據(jù)庫表對(duì)應(yīng)。如果項(xiàng)目里用到了MyBatis-Plus那要看它怎么通過Wrapper構(gòu)造查詢條件如果用原生MyBatis就看XML里的SQL映射。有一個(gè)判斷項(xiàng)目質(zhì)量的小技巧看看Controller是直接寫一大堆業(yè)務(wù)邏輯還是只調(diào)用Service層。正規(guī)的寫法應(yīng)該是Controller很薄只是“接參數(shù)、調(diào)服務(wù)、返回結(jié)果”。如果Controller里全是業(yè)務(wù)代碼說明項(xiàng)目作者分層意識(shí)不夠后期擴(kuò)展會(huì)非常痛苦。3.2 前端源碼結(jié)構(gòu)怎么拆解Vue項(xiàng)目的標(biāo)準(zhǔn)結(jié)構(gòu)是src ├── api接口請(qǐng)求模塊按業(yè)務(wù)模塊拆分 ├── assets靜態(tài)資源 ├── components通用組件 ├── router路由配置 ├── store狀態(tài)管理 ├── views頁面組件一個(gè)文件夾通常對(duì)應(yīng)一個(gè)路由 ├── App.vue根組件 └── main.js入口文件先看main.js了解項(xiàng)目安裝了什么插件再看router/index.js了解整個(gè)系統(tǒng)有哪些頁面然后看api目錄下的請(qǐng)求封裝搞清楚前端是怎么調(diào)用后端接口的最后才進(jìn)入到具體頁面看業(yè)務(wù)邏輯。這個(gè)順序能幫你快速構(gòu)建起全貌而不是一頭扎進(jìn)某個(gè)組件出不來。3.3 最容易暴露項(xiàng)目水平的“隱藏文件”除了源代碼有幾個(gè)文件雖然不起眼但特別能反映項(xiàng)目的工程化水平pom.xml依賴管理??纯蠢锩嬗袥]有不必要的依賴、版本號(hào)是否沖突、有沒有注釋掉的垃圾代碼。application.yml配置管理。數(shù)據(jù)庫連接、端口、MyBatis配置、日志級(jí)別是否集中管理。package.json前端的依賴和腳本命令。依賴版本是否鎖死Script命令是否齊全。.gitignore是否有意識(shí)地排除了target、node_modules等目錄。這些文件在答辯時(shí)建議主動(dòng)展示因?yàn)樗鼈兪恰按a能不能在別人電腦上跑起來”的關(guān)鍵。標(biāo)題里既然強(qiáng)調(diào)了“完整項(xiàng)目源碼”那就意味著這些工程文件必須齊全缺一個(gè)都可能讓整個(gè)項(xiàng)目無法啟動(dòng)。4. SQL腳本建表腳本與初始化數(shù)據(jù)才是“隱形主角”4.1 表結(jié)構(gòu)設(shè)計(jì)里藏著整個(gè)系統(tǒng)的業(yè)務(wù)邊界企業(yè)內(nèi)管系統(tǒng)的表結(jié)構(gòu)設(shè)計(jì)是整個(gè)項(xiàng)目的根基。判斷一套SQL腳本寫得好不好不需要看每張表的所有字段只需要看幾張核心表之間的關(guān)聯(lián)關(guān)系。最典型的是權(quán)限模型。如果你的系統(tǒng)做到了RBAC基于角色的訪問控制那一定會(huì)有五張核心表用戶表、角色表、菜單表或權(quán)限表、用戶角色關(guān)聯(lián)表、角色菜單關(guān)聯(lián)表。這套模型的價(jià)值在于用戶不直接綁權(quán)限而是通過角色間接獲得權(quán)限這樣一來新增一個(gè)角色或者調(diào)整權(quán)限分配只需要操作關(guān)聯(lián)表不需要改動(dòng)用戶表。用MySQL舉一個(gè)實(shí)際例子CREATE TABLE sys_user ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 用戶ID, username VARCHAR(50) NOT NULL UNIQUE COMMENT 用戶名, password VARCHAR(100) NOT NULL COMMENT 密碼(BCrypt加密), real_name VARCHAR(50) COMMENT 真實(shí)姓名, email VARCHAR(100) COMMENT 郵箱, phone VARCHAR(20) COMMENT 手機(jī)號(hào), status TINYINT DEFAULT 1 COMMENT 狀態(tài): 1啟用 0禁用, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 創(chuàng)建時(shí)間, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新時(shí)間, deleted TINYINT DEFAULT 0 COMMENT 邏輯刪除: 0未刪除 1已刪除 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT系統(tǒng)用戶表; CREATE TABLE sys_role ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 角色I(xiàn)D, role_code VARCHAR(50) NOT NULL UNIQUE COMMENT 角色編碼, role_name VARCHAR(50) NOT NULL COMMENT 角色名稱, description VARCHAR(200) COMMENT 角色描述 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT角色表; CREATE TABLE sys_user_role ( user_id BIGINT NOT NULL COMMENT 用戶ID, role_id BIGINT NOT NULL COMMENT 角色I(xiàn)D, PRIMARY KEY (user_id, role_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用戶角色關(guān)聯(lián)表;這里有幾個(gè)細(xì)節(jié)值得注意密碼字段長度要預(yù)留夠。如果使用BCrypt加密生成的哈希字符串是60位所以VARCHAR(100)是安全的選擇用VARCHAR(32)存MD5的思路已經(jīng)過時(shí)了。邏輯刪除字段幾乎是標(biāo)配。企業(yè)系統(tǒng)一般不會(huì)物理刪除數(shù)據(jù)而是通過deleted字段標(biāo)記查詢時(shí)統(tǒng)一加WHERE deleted 0條件。utf8mb4字符集。MySQL的utf8字符集最多3字節(jié)存不了emoji和部分生僻字utf8mb4才是完整的UTF-8編碼。建庫時(shí)統(tǒng)一用utf8mb4能避免很多亂碼問題。4.2 初始化數(shù)據(jù)為什么“夠用但不過量”SQL腳本通常包含兩類建表腳本DDL和初始化數(shù)據(jù)腳本DML。初始化數(shù)據(jù)設(shè)計(jì)得好的項(xiàng)目能讓你啟動(dòng)后立刻看到效果設(shè)計(jì)得差的要么一個(gè)數(shù)據(jù)都沒有、進(jìn)去全是空表要么堆了幾萬條無意義的數(shù)據(jù)、影響演示性能。我比較推薦的初始化數(shù)據(jù)策略是必須有一個(gè)管理員賬號(hào)密碼用后端的加密工具生成后寫入腳本而不是明文123456。必須有角色數(shù)據(jù)和菜單數(shù)據(jù)保證系統(tǒng)啟動(dòng)后就能看到左側(cè)菜單完整展示。業(yè)務(wù)數(shù)據(jù)比如通知公告、審批記錄準(zhǔn)備5到10條有代表性的示例數(shù)據(jù)即可既能演示分頁效果又不會(huì)喧賓奪主。如果是樹形結(jié)構(gòu)的表比如部門表要設(shè)計(jì)好父子層級(jí)關(guān)系方便演示樹形組件。在導(dǎo)入SQL腳本時(shí)常見的問題是編碼格式。很多學(xué)生用Navicat直接運(yùn)行網(wǎng)上拷的腳本結(jié)果中文亂碼。解決方法是在創(chuàng)建數(shù)據(jù)庫時(shí)明確指定字符集或者導(dǎo)入前把腳本文件另存為UTF-8編碼。如果是用PL/SQL工具打開SQL腳本要注意工具本身對(duì)字符集的識(shí)別方式。最穩(wěn)妥的做法是CREATE DATABASE IF NOT EXISTS enterprise_management DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE enterprise_management; SET NAMES utf8mb4;然后在命令行或Navicat中執(zhí)行腳本而不要直接雙擊打開腳本文件再復(fù)制。4.3 SQL腳本運(yùn)行的“順序儀式”拿到一個(gè)帶SQL腳本的項(xiàng)目最忌諱的就是直接整個(gè)腳本一骨碌運(yùn)行。正確流程是先人工檢查一遍腳本內(nèi)容確認(rèn)包含建庫語句還是只包含建表語句——如果只包含建表語句你需要先手動(dòng)創(chuàng)建數(shù)據(jù)庫再執(zhí)行再確認(rèn)表之間有沒有外鍵依賴——有外鍵約束的表必須先建父表再建子表最后確認(rèn)是否有初始化數(shù)據(jù)——數(shù)據(jù)腳本應(yīng)該在表結(jié)構(gòu)創(chuàng)建成功后執(zhí)行。實(shí)操時(shí)個(gè)人建議直接在Navicat里“運(yùn)行SQL文件”而不是打開查詢編輯器再粘貼。運(yùn)行之前可以在數(shù)據(jù)庫連接屬性里設(shè)置“MySQL字符集”為utf8mb4避免連接層編碼問題。如果腳本報(bào)錯(cuò)先看錯(cuò)誤行號(hào)八成都是字段類型不匹配、字符集不支持或者重復(fù)創(chuàng)建表的問題處理優(yōu)先級(jí)是從后往前排查依賴關(guān)系。5. 接口文檔從Swagger自動(dòng)生成到“能講給老師聽”5.1 接口文檔不是“配置完就完事”是寫給人和聯(lián)調(diào)工具一起看的很多人對(duì)接口文檔的理解就一句話“我在項(xiàng)目里集成了Swagger接口文檔自動(dòng)生成了?!边@話說得對(duì)但也不全對(duì)。SwaggerSpringDoc / springfox確實(shí)可以根據(jù)注解自動(dòng)生成接口文檔但生成的文檔是否可讀、是否清晰取決于你在代碼里有沒有寫注解。對(duì)比一下Api(tags 用戶管理接口) RestController RequestMapping(/api/user) public class UserController { ApiOperation(分頁查詢用戶列表) GetMapping(/page) public ResultPageResultUserVO page( ApiParam(頁碼) RequestParam(defaultValue 1) Integer pageNum, ApiParam(每頁條數(shù)) RequestParam(defaultValue 10) Integer pageSize, ApiParam(關(guān)鍵字) RequestParam(required false) String keyword) { // ... } }這樣寫出來的接口文檔別人能看懂每個(gè)參數(shù)的含義、每個(gè)接口是做什么的。如果代碼里只有GetMapping那自動(dòng)生成出來的文檔就是一堆光禿禿的接口路徑?jīng)]有業(yè)務(wù)語義閱讀價(jià)值大打折扣。這里要多說一句如果你在SpringBoot項(xiàng)目里配了JWT做登錄認(rèn)證那Swagger界面里所有需要登錄才能訪問的接口都會(huì)被攔截住沒法直接測試。這是畢設(shè)中極其常見的一個(gè)坑。解決方案通常是寫一個(gè)Swagger配置類放行/swagger-ui/**、/v3/api-docs/**等路徑讓Swagger頁面本身可以訪問同時(shí)給Swagger設(shè)置一個(gè)全局的Authorization參數(shù)讓你在調(diào)試時(shí)手動(dòng)填入token。Configuration public class SwaggerConfig { Bean public OpenAPI customOpenAPI() { return new OpenAPI() .components(new Components() .addSecuritySchemes(Authorization, new SecurityScheme() .type(SecurityScheme.Type.HTTP) .scheme(bearer) .bearerFormat(JWT))) .info(new Info() .title(企業(yè)內(nèi)管系統(tǒng) API) .version(1.0.0) .description(企業(yè)內(nèi)管信息化系統(tǒng)后端接口文檔)); } }5.2 除了Swagger地址接口文檔還要包含“敘事線”Swagger能解決“接口是什么”的問題但解決不了“業(yè)務(wù)是怎么流轉(zhuǎn)的”這個(gè)問題。很多畢設(shè)答辯的追問恰恰來自這里——老師不關(guān)心/api/user/page這個(gè)接口的具體參數(shù)他們關(guān)心的是“用戶從登錄到操作業(yè)務(wù)數(shù)據(jù)數(shù)據(jù)是怎么流轉(zhuǎn)的”。所以我建議在項(xiàng)目的README.md或者接口文檔目錄里額外寫一段核心業(yè)務(wù)接口調(diào)用鏈路。比如用戶輸入賬號(hào)密碼調(diào)用POST /api/auth/login服務(wù)端校驗(yàn)后返回token。前端把token存入localStorage或Pinia并在axios請(qǐng)求攔截器里自動(dòng)注入Authorization: Bearer {token}。每次請(qǐng)求后端通過攔截器校驗(yàn)token并把用戶ID解析出來放入ThreadLocal或請(qǐng)求上下文。用戶請(qǐng)求菜單列表后端根據(jù)用戶角色返回對(duì)應(yīng)的菜單集合。前端用返回的菜單數(shù)據(jù)動(dòng)態(tài)生成路由和側(cè)邊欄。這段鏈路的文字說明只需要三四百字卻能把“登錄認(rèn)證、權(quán)限控制、動(dòng)態(tài)路由”三個(gè)核心賣點(diǎn)串起來。答辯時(shí)如果能按這條敘事線講老師問“怎么保證接口安全”“怎么做到不同用戶看到不同菜單”時(shí)你根本不用臨場組織語言。5.3 接口返回格式的設(shè)計(jì)規(guī)范SpringBoot項(xiàng)目里最怕的就是每個(gè)接口返回格式不統(tǒng)一。有的返回Map有的返回List有的直接拋異常返回錯(cuò)誤頁。一套完整的內(nèi)管系統(tǒng)盡量統(tǒng)一用Result包裝public class ResultT { private Integer code; // 200成功, 500失敗 private String message; // 提示信息 private T data; // 數(shù)據(jù) }好處有很多前端攔截器里統(tǒng)一判斷codecode非200就走全局錯(cuò)誤提示后端拋出業(yè)務(wù)異常時(shí)通過RestControllerAdvice統(tǒng)一捕獲并封裝成Result就算接口報(bào)錯(cuò)響應(yīng)結(jié)構(gòu)也是一致的不會(huì)出現(xiàn)前端解析異常。這個(gè)設(shè)計(jì)在答辯時(shí)可以主動(dòng)講展現(xiàn)代碼的規(guī)范意識(shí)。6. 環(huán)境準(zhǔn)備與從零啟動(dòng)從JDK到Nginx全鏈路跑通6.1 后端啟動(dòng)清單要跑起一個(gè)SpringBootVue項(xiàng)目最小化環(huán)境要求是組件版本建議備注JDK8 或 17取決于SpringBoot版本Maven3.6用于管理后端依賴MySQL5.7 或 8.0用于導(dǎo)入SQL腳本Node.js14 或 16用于運(yùn)行前端工程npm/pnpm隨Node.js安裝前端依賴Redis如果有5.0部分項(xiàng)目用于緩存/驗(yàn)證碼存儲(chǔ)啟動(dòng)順序建議是先啟動(dòng)MySQL并導(dǎo)入SQL腳本再啟動(dòng)后端SpringBoot服務(wù)最后啟動(dòng)前端Vue開發(fā)服務(wù)器。順序反了也不會(huì)報(bào)錯(cuò)但你在啟動(dòng)后端時(shí)如果發(fā)現(xiàn)連不上數(shù)據(jù)庫會(huì)容易誤判為代碼問題。后端啟動(dòng)常見的坑端口被占用。SpringBoot默認(rèn)8080如果本地已經(jīng)跑了其他服務(wù)啟動(dòng)日志里會(huì)有Port already in use可以在application.yml里改server.port。數(shù)據(jù)庫連接失敗。檢查application.yml里的url、username、password是否和本地一致。spring.datasource.url里的serverTimezoneAsia/Shanghai這樣的時(shí)區(qū)參數(shù)不能丟。Redis連接失敗。如果項(xiàng)目里集成了Redis但你沒啟動(dòng)Redis服務(wù)啟動(dòng)會(huì)報(bào)連接超時(shí)。解決方式是先啟動(dòng)Redis或者在配置文件里把相關(guān)依賴暫時(shí)停掉。6.2 前端啟動(dòng)清單前端啟動(dòng)相對(duì)簡單三步走# 1. 進(jìn)入前端項(xiàng)目目錄 cd frontend # 2. 安裝依賴 npm install # 3. 啟動(dòng)開發(fā)服務(wù)器 npm run dev如果npm install報(bào)錯(cuò)最常見的兩個(gè)原因一是Node版本太高部分老依賴包不兼容二是網(wǎng)絡(luò)問題導(dǎo)致依賴下載不完整。解決辦法是使用鏡像源npm config set registry https://registry.npmmirror.com/啟動(dòng)后訪問http://localhost:5173Vite默認(rèn)或http://localhost:8081取決于你項(xiàng)目的配置。如果頁面能打開但接口請(qǐng)求報(bào)404或跨域問題一定出在代理配置或者后端沒有啟動(dòng)。一個(gè)非常典型的場景是前端頁面正常顯示登錄請(qǐng)求返回“Network Error”。這個(gè)時(shí)候優(yōu)先檢查后端是否啟動(dòng)成功、接口路徑是否拼寫正確、以及前端.env.development里配置的VITE_API_BASE_URL指向的地址和端口是否正確。6.3 跨域問題的本質(zhì)與處理前后端分離項(xiàng)目跨域是避不開的話題。本地聯(lián)調(diào)時(shí)前端跑在5173端口后端跑在8080端口兩個(gè)端口不同就構(gòu)成了跨域請(qǐng)求瀏覽器會(huì)先發(fā)一個(gè)OPTIONS預(yù)檢請(qǐng)求沒有正確響應(yīng)就會(huì)報(bào)CORS錯(cuò)誤。解決方式有兩種一種是前端代理// vite.config.js server: { proxy: { /api: { target: http://localhost:8080, changeOrigin: true } } }另一種是后端開啟CORS配置Configuration public class CorsConfig implements WebMvcConfigurer { Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping(/**) .allowedOriginPatterns(*) .allowedMethods(GET, POST, PUT, DELETE, OPTIONS) .allowedHeaders(*) .allowCredentials(true) .maxAge(3600); } }兩種方案各有適用場景開發(fā)階段用前端代理最省事生產(chǎn)部署用后端CORS或者反向代理統(tǒng)一入口。畢設(shè)答辯現(xiàn)場多數(shù)是本地演示前端代理基本就夠用了但如果你回答“跨域怎么解決”時(shí)能說出這兩種方案的區(qū)別印象分會(huì)好不少。7. 核心業(yè)務(wù)代碼怎么看從登錄到權(quán)限這幾段代碼值得精讀7.1 登錄邏輯不止是比對(duì)用戶名密碼企業(yè)內(nèi)管系統(tǒng)的登錄邏輯是整個(gè)后端代碼的“門面”建議精讀。完整登錄鏈路通常是這樣的Controller接收用戶名和密碼。Service里調(diào)用authenticationManager.authenticate()或手動(dòng)查詢用戶、用BCryptPasswordEncoder.matches()比對(duì)密碼。比對(duì)成功后生成JWT token返回給前端。前端保存token后續(xù)請(qǐng)求在請(qǐng)求頭中帶上。這里我特別想強(qiáng)調(diào)密碼加密這件事。企業(yè)系統(tǒng)中密碼絕不能明文存儲(chǔ)。如果SQL腳本里的初始化密碼是明文123456至少說明項(xiàng)目在安全性上偷懶了。用BCryptPasswordEncoder做加密的成本很低但能直接體現(xiàn)對(duì)安全設(shè)計(jì)的認(rèn)知。Service public class UserServiceImpl implements UserService { Autowired private UserMapper userMapper; Autowired private BCryptPasswordEncoder passwordEncoder; Override public String login(String username, String password) { User user userMapper.selectByUsername(username); if (user null || !passwordEncoder.matches(password, user.getPassword())) { throw new BusinessException(用戶名或密碼錯(cuò)誤); } // 生成JWT String token JwtUtil.createToken(user.getId(), user.getUsername()); return token; } }注意這里有幾個(gè)隱藏考點(diǎn)用戶不存在和密碼錯(cuò)誤用同一個(gè)提示信息這是防止用戶枚舉攻擊的常見做法業(yè)務(wù)異常如何使用全局異常處理器統(tǒng)一返回而不是直接return null。7.2 JWT攔截器每次請(qǐng)求發(fā)生了什么當(dāng)你登錄成功后訪問其他接口請(qǐng)求會(huì)經(jīng)過攔截器Interceptor或Filter。這個(gè)機(jī)制非常值得花時(shí)間搞清楚標(biāo)準(zhǔn)流程是從請(qǐng)求頭Authorization里取出token。如果token缺失直接返回401。如果token存在解析token并校驗(yàn)有效性。解析成功后把用戶信息放入ThreadLocal供同一線程下的Service層隨時(shí)獲取當(dāng)前用戶。請(qǐng)求結(jié)束后在afterCompletion里清理ThreadLocal防止線程池復(fù)用時(shí)的數(shù)據(jù)錯(cuò)亂。之后在Controller里寫接口時(shí)可以隨時(shí)通過SecurityUtil.getCurrentUser()拿到當(dāng)前登錄用戶的信息。實(shí)現(xiàn)了這個(gè)工具類你才能在“發(fā)布公告”這類接口里輕松拿到“當(dāng)前操作人是誰”而不是每個(gè)接口都手動(dòng)接收一個(gè)userId參數(shù)。7.3 動(dòng)態(tài)菜單與前端路由守衛(wèi)權(quán)限控制的完整閉環(huán)是后端返回當(dāng)前用戶“能看哪些菜單”前端根據(jù)菜單數(shù)據(jù)動(dòng)態(tài)生成路由然后通過路由守衛(wèi)攔截“未登錄和越權(quán)訪問”。后端通常是這樣的用戶登錄后查詢?cè)撚脩魮碛心男┎藛螜?quán)限比如[ { path: /dashboard, name: 首頁, icon: DashboardOutlined }, { path: /system, name: 系統(tǒng)管理, children: [ { path: /system/user, name: 用戶管理 }, { path: /system/role, name: 角色管理 } ]} ]前端拿到這段數(shù)據(jù)后通過addRoute動(dòng)態(tài)注冊(cè)路由再配合路由守衛(wèi)router.beforeEach((to, from, next) { const token localStorage.getItem(token); if (!token to.path ! /login) { next(/login); } else { next(); } });這一段如果自己能說清楚幾乎就是畢設(shè)答辯的“必殺技”因?yàn)樗故玖四阌小扒昂蠖伺浜献鰴?quán)限控制”的整體思路而不是簡單堆CRUD。8. 讓這套系統(tǒng)變成“你的項(xiàng)目”答辯前應(yīng)該做的三件事8.1 沿著業(yè)務(wù)線做一次端到端演示彩排拿到源碼之后不要直接等著答辯建議按照真實(shí)業(yè)務(wù)場景走一遍完整流程管理員登錄 → 創(chuàng)建部門 → 創(chuàng)建角色 → 創(chuàng)建用戶 → 給用戶分配角色 → 用新賬號(hào)登錄 → 驗(yàn)證菜單權(quán)限不同 → 在業(yè)務(wù)模塊里錄入一條數(shù)據(jù) → 演示查詢、修改、刪除 → 退出登錄。這個(gè)過程既是給老師看的也是給你自己看的。如果你能不看筆記、不卡殼地走完這條鏈路說明你已經(jīng)不是一個(gè)“代碼搬運(yùn)工”而是真正理解了系統(tǒng)。8.2 挑兩個(gè)技術(shù)細(xì)節(jié)深入下去不需要全文代碼都會(huì)講但至少要有一個(gè)“如果老師問深一點(diǎn)我能接住”的技術(shù)點(diǎn)。比較推薦的深挖方向RBAC權(quán)限模型的表和查詢邏輯為什么用用戶-角色-菜單三張核心表加兩張關(guān)聯(lián)表怎么實(shí)現(xiàn)“不同角色登錄看到不同菜單”菜單表里parent_id是怎么實(shí)現(xiàn)樹形的JWT的完整流程token是什么存哪里過期了怎么辦和傳統(tǒng)Session方案比有什么優(yōu)缺點(diǎn)統(tǒng)一的異常處理和返回格式為什么所有接口都返回Result結(jié)構(gòu)業(yè)務(wù)異常和系統(tǒng)異常怎么區(qū)分選一個(gè)點(diǎn)把代碼和原理都啃透。老師未必會(huì)問但被問到的時(shí)候你會(huì)發(fā)現(xiàn)自己完全不一樣了。8.3 改造一個(gè)“只屬于你”的功能點(diǎn)如果你想讓這套系統(tǒng)在眾多畢設(shè)里脫穎而出強(qiáng)烈建議在原有功能基礎(chǔ)上加一個(gè)自己的功能點(diǎn)。不需要很大加一個(gè)“數(shù)據(jù)統(tǒng)計(jì)報(bào)表”或者“個(gè)人中心頭像上傳”都能體現(xiàn)個(gè)性化的價(jià)值。重點(diǎn)不是功能多復(fù)雜而是你能否展示出“我在理解了原系統(tǒng)的基礎(chǔ)上做了擴(kuò)展”的增量貢獻(xiàn)。比如加一個(gè)簡單的Excel導(dǎo)出功能后端用EasyExcel封裝導(dǎo)出接口前端在查詢結(jié)果表格上增加一個(gè)“導(dǎo)出”按鈕這個(gè)功能成本很低但效果非常直接它說明你不只會(huì)抄代碼你還知道怎么在已有體系里加點(diǎn)新東西。9. 打包部署從本地演示到“云上可訪問”9.1 后端打包后端打包就一條命令mvn clean package -DskipTests打包完成后在target目錄下會(huì)生成一個(gè)xxx.jar文件。運(yùn)行方式j(luò)ava -jar xxx.jar --spring.profiles.activeprod如果打包報(bào)錯(cuò)90%的原因是單元測試沒通過。你可以先skip測試等以后有時(shí)間再看具體的測試代碼問題。9.2 前端打包前端打包npm run build打包后會(huì)生成dist目錄。你可以用Nginx托管server { listen 80; server_name localhost; root /usr/share/nginx/html/dist; index index.html; location /api/ { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }這個(gè)Nginx配置實(shí)現(xiàn)了一個(gè)關(guān)鍵事情前端頁面和后端接口共用同一個(gè)域名和端口前端訪問/api/xxx時(shí)Nginx把請(qǐng)求反向代理到后端服務(wù)的8080端口。這樣部署到服務(wù)器上后不需要再處理跨域也符合生產(chǎn)環(huán)境的常見架構(gòu)。9.3 一個(gè)重要的環(huán)境細(xì)節(jié)JDK版本和打包的對(duì)應(yīng)關(guān)系如果你在本地是JDK 8編譯的jar包放到只有JDK 17的服務(wù)器上通常也能跑前提是編譯級(jí)別允許但反過來就不行——JDK 17編譯的jar包放到JDK 8環(huán)境里一定會(huì)報(bào)UnsupportedClassVersionError。實(shí)操中的經(jīng)驗(yàn)是先確認(rèn)服務(wù)器上Java版本再選擇本地編譯版本。同時(shí)確認(rèn)SpringBoot內(nèi)嵌Tomcat的高版本是否兼容你的JDK版本別因?yàn)樾“姹緦?duì)不上白耗半天。如果你的Linux服務(wù)器沒有圖形界面直接用java -jar或者nohup java -jar xxx.jar log.file 21 啟動(dòng)然后通過tail -f log.file看日志。10. 關(guān)于這套項(xiàng)目的幾句實(shí)在話從畢設(shè)評(píng)審的角度來說“SpringBoot Vue MySQL JWT RBAC”已經(jīng)構(gòu)成了一個(gè)非常經(jīng)典的Java Web完整方案幾乎覆蓋了本科階段能涉及的所有核心知識(shí)點(diǎn)。所謂的“完整項(xiàng)目源碼SQL腳本接口文檔”真正價(jià)值不在于代碼多高深而在于它給了你一條完整的認(rèn)知鏈路從表結(jié)構(gòu)到接口從接口到頁面從頁面到權(quán)限控制整個(gè)系統(tǒng)是怎么一環(huán)扣一環(huán)的。我個(gè)人在帶人看這類項(xiàng)目時(shí)最常說的一句話是不要急著改代碼先把數(shù)據(jù)流走一遍。你把SQL腳本導(dǎo)進(jìn)去、把項(xiàng)目跑起來、打開Swagger看接口、用前端頁面操作一次這個(gè)過程比盯著代碼看一天都管用因?yàn)槟銜?huì)突然明白那些文件與文件之間是怎么協(xié)作的哪些是核心哪些只是輔助。如果你接下來準(zhǔn)備基于這套系統(tǒng)改造或者做一個(gè)類似的選題建議把重心放在兩個(gè)方向上一是把權(quán)限部分理解的再深一點(diǎn)包括動(dòng)態(tài)路由、按鈕級(jí)權(quán)限、數(shù)據(jù)權(quán)限二是給系統(tǒng)加一個(gè)稍微有復(fù)雜度的小模塊比如帶狀態(tài)的審批或者帶圖表的數(shù)據(jù)面板。這樣不管從學(xué)習(xí)還是答辯角度看這套系統(tǒng)都會(huì)真正變成“你的作品”。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
成人毛片免费| 91人妻做a观看视频| 欧美中出1| 午夜男女爽爽大片免费观看| 囯产精品强| 熟妇熟女视频一区二区三区| 国产曰批免费观看久久久| 九九九不卡| 亚洲自拍另类丝袜综合| 俄罗斯一区二区视频在线观看| 天天夜夜久久| 蜜桃成人1区2区3区| a片在线播放| 白丝1区2区3区| 秋霞免费AV| 天天综合官网| 日本亚欧爱爱| 丝袜内射| 色婷婷六月| 国产Aα| 人妻熟女一区二区在线视频| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 国产精品午夜高潮呻吟久久av| 97超碰超| 日韩特一级久久| 久久久9品一区二区三区| 波多野结衣一级视频| 色色97爱| 九99久久| 台湾佬中文娱乐自偷自拍| 国产精品日韩在线一区| 美女高潮国产高清| 色综合 加勒比| 国产精品在线一区二区| 亚洲揄拍网| 九久久九精品视频| 日本一区二区电影网站| 精品人妻一区春色| 免费啊啊啊| 精品日韩中文在线| 久久riav中文精品| 亚洲经典啪啪| 99这里有精品视频| 国语人妻精彩刺激| 亚射在线| 日本久久999| 久草新免费| 好爽免费视频,| 色阁阁AV综合网| 人妻熟女一区二区| 99热这里只有精品18| 伊人91| 97啪啪| 84YTCOM性无码| 又大又大又大又粗爽高潮观看| 亚洲欧美国产va在线播放频| 啪啪啪精品| 中文字幕一区二区在线日韩精品| 国产av美女被艹的乱叫| 啊啊啊 在线观看| 欧美 中文字幕 一区| 无码视频一区二区| 熟妇女伦乱视频视频 | 久久一二三四| 国产亚洲日韩欧| 人人操人人摸avav| 天天躁日日躁AAAXX| 日韩人妻精品久久久久| 四虎AV影视国产精品亚洲精品| 久久亚洲人妻| 欧美不卡五十路| 伊人黄色片| 久久人人爽人人爽人人片Ⅴ| 欧美天天谢综合网| 欧洲视频在线| 久久av成人无码免费| 99色色网| yazhouzaixian| 天天肏视频| 欧美Aⅴ| 天天色播亚洲综合网站| 成人日韩中文字幕| 91天堂| 中文字幕一区二区免费在线| 欧美三级一级| 欧美亚洲情色| 成人在线日韩| 一级黄碟| 一区二区三区黄色片a| 草久在线| 另类 日韩 熟女| 97资源超碰| 青草视频人妻在线观看| 操操操五月天婷婷丁香影院| 精品女人999| 新精精品久久精品| 欧美人人操人人插| 搡老女人老妇女老妇老熟女怎么读| 亚洲精品蜜桃久久久久久久| 黄色大片视频在线免费看| 色噜噜人妻丝袜a∨先锋影 | 欧美日本久久精品一区 | 中文字幕精品免费一区二区| 9色在线| 成人十八禁日韩欧美一二三| 亚洲影院无码在线| 久久久久9久久久久| 亚洲色综网| 一区二区三区探花在线观看| 精品无码人妻一区二区免费蜜桃| 激情小说日韩无码| 免費人妻夜夜爽天天爽爽一区| 亚洲小说视频| 九九热精品视频在线观看| 国产v亚洲v日韩v欧美v片另类| 黄片aaaaa一区| 清清草影| 亚洲国产一级精品毛一级精品看免费视频 | 黄色成年| 免费A V在线| 久久m| 国产精品久久久久久高清无码免费看| 91原创在线观看| 亚洲成人激情小说视频| 中文字幕高清20页视频| 熟妇熟女视频一区二区三区| 欧美日韩大香蕉| 伊人久久亚洲中文字幕| 91色人妻| 九九九九免费高| 大学生口爆吞精| 欧美日韩亚洲天堂网| 久久av一级av少妇av高潮| 日韩9999| 欧美|91色综合| 亚洲 暴爽 AV人人爽日日碰| 欧美最婬乱婬爆婬性视频 | 欧洲小说色图视频另类| 91GD.COM| 少妇厨房愉情理伦片bd在线观看| 另类av综合久久| 青娱乐欧美激情一区二区| 操淫穴亚洲五月丁香 | 五月丁香啪啪网| 欧美色图综合网| 99rre在线精品99re8| 精品人妻美妇91job| 91精品人妻一品二品三品| 亚欧精品久久久久久久久久久| 亚洲欧美洲综合| 伊人久久国产免费观看视频| 亚洲五月丁香花狠狠干一区二区三区| 极品国产内射| 国产亚热在线久久| 99国内精品| 大香蕉强奸乱伦| 校园激情狠狠四射| 成人在线视频一区| 日本三级大片| 天天色黄色影院天天操| 97超碰人人模人人拍人人| 日韩资源网| 免费AV播放| 69视频入口| 韩日自拍| 欧美日韩美女精品久草一区二区三区 | 中文字幕日本久久| 人人贴人人摸| 久久大| 激情人妻另类| 成人精品视频一区二区| 丁香五月成人| 玖玖玖玖精品国产剧情| 国内偷自视频区视频综合| 欧美肥臀在线| 丝袜美腿射精91| 91男女啊啊啊| www.99在线| 成 人片 黄色大片| 尤物网站91| 亚洲做性| 九热超碰| 妇女乱色二区| 亚洲drav色图| 日夜干射色啊| 亚洲综合射| 九九九久千久久激情蜜桃在线看| 国产激情久久久| 中日韩熟女| 中文字幕美女91| 9999久久久| 亚洲毛片久久| 亚洲天堂2020| 久草成人| 九九玖玖精品| 天天操天天干美女网址导航| 九九九九九九视频| 天天享受天天看| 中文字幕二区日韩天堂| 91色图片| 在线视频一区二区传媒| 丝袜综合色图| 久久久久密臀视频| 久久爽爽精品| 欧美天堂亚洲电影院一区在线播放| 欧美大香蕉卡久久| 日本九九久久99播| 超碰精品| 天天插天天操天天摸天天射天天看| 精品国产72| 使劲用力艹少妇视频一区二区| 天天香香欲综合| 96AV久久久| 久久综合久久综合人久久夜精品| 天堂日本亚洲欧美| 欧美黑人与女人91~| 韩国女主播青草福利视频| 综合色图亚洲欧美| 欧美大香蕉在线观看| 欧美亚洲日韩16色| 亚洲天天更新| 青青伊人加勒比海| 人妻酒店出差被中出免费在线播放| 国产强奸乱伦第1页| 欧美性性性| 国产9区| 99热| 日本东京热加勒比久久| 亚洲天堂电影精品一区| 久久、1234| 天天情欲宗合网| 蜜桃网熟妇| 亚洲久久久| 午夜亚洲WWW湿好大| 先锋色眉乱伦资源| 婷婷五月天激情网| 夜夜騷av、一區二區| 天天草AV| 国产久久日韩网站导航| 日韩亚洲97| 91中出视频| 亚洲欧洲中文日韩女优乱码| 欧美一区二区三区日韩| 久久av色| 91在线一起| 欧美亚洲手机在线| 久久69精品久久久久久久| 国产精品一级片在线看| 91N欧美| 嫩草伊人久久精品| 欧美性夜| 久久毛卡| 日韩9999| 蜜臀久久久99久久久久 | 97超碰亚洲| 欧洲自拍第一页| 91人妻少妇| 国内自拍 日韩激情 99| 96AV久久久| 老熟乱一区二区三区四区| 九九视频黄色片| 午夜国产成人福利视频| 丝袜综合色图| 欧美一级A一级a爱片久久| 人妻乱仑一区二区三区| 嗯嗯啊啊视频一区二区三区| 99久在线精品99re8蜜桃| 99自拍B亚洲 | 久久久免费的精品| 精品无码欧美三级| 亚洲 日韩 欧美 国产综合体| 上床不卡网站| 综合网91| 嗯嗯啊操我| 久久精品一区一起草| 嫩草在线视频| 91国产大片| 天天拍夜夜| 激情AV| 在线可观看的黄色网址| 内射黑人| 色超碰综合| 综合97| 日韩成人精品中文字幕| 久久激情四射婷婷丁香五月天| 国产精品亚洲高清在线| 大香蕉宅男伊人| 亚洲人成网站7777| 欧美不卡二区| 日日摸日日碰| 精品国产丝袜一区二区三区乱码| 欧美中字二区| 夜夜精品视频一区二区| 伊人黄色视频免费观看| 亚洲极品| 欧美成人性爱视频大全| 欧美激情 亚洲色图| 国产精品亚洲免费| 亚洲日韩美女丝袜美腿人妻视频| 久久天堂婷婷网| 99热销国产这里有精品| 大香蕉宗合网在线| 中日韩一区二区三区欧美| 亚洲色人妻综合| 欧美色图成人网一区二区 | 中文高清一区二区的| 四虎精品一区二区| 久久婷婷在线观看视频| 亚洲精品性爱片| 欧美日韩人妻少妇 一区二区三区| av在线免费一区二区| 亚洲涩图欧美| 在线观看AV不卡| 国产精品不卡一区二区电影| 九9精品| AV综合中文字幕干| 亚洲欧美人妻| 色老牛| 欧美精品日韩一区二区| 免费av在线播放二区| 中文字幕人乱码中文字的预防方法 | 亚洲国产精品无码AV久久久| 欧亚揄拍偷拍精品视频| 熟女人妻av在线资源,黄色的资源| 9久精品| 青青草色插素人| 丁香五月婷婷啪啪| 91伊人久| 91网站18禁| 后入式在线免费观看60秒| 亚洲精品中文字幕一区在线视频| 97视频免费播放| 亚洲欧美国产中文字幕| 日韩AV一区二区三区四四| 在线观看无码三级少妇| 亚洲 欧美 色图| 1024手机看片欧美日韩| 中日无幕一二三四区| 人人人人插| 久久久新亚洲AV| 久久精品国产久精国产| 综合激情97| 丁香五月大香蕉| 久久精品日韩| 欧美极品美女aaaaaa级黄片| 欧亚日本情色| 青青伊人这里只有精品| 国产精品一区二区在钱播放| 中文字幕黄色片| 亚洲国产成人精品999| 97色欧洲| 人妻精品一区一区三区蜜桃91| 精品人妻一区二区三区-国产| 欧美丝袜制服久久| 91亚洲色人| 精品国产乱码久久久久久网站入口| 国产精品久久久久久久久久久久久久久久| 色噜噜综合在线| 人人操人人狠狠操| 人人人人插| 四虎午夜影院| 中英熟女操女| 91成人无码| 好爽要喷了| 97精品视频网站| 91新在线欧美| 91电影色诱| 97超碰色五月| 农村妇女一级二级三级视频| 丰满人妻大屁一区二区| 久久免费精品视频免一| 伊人女女资源在线观看| 国产精品久久久久中文字幕| 人人妻人射| 亚洲日韩人妻中文字幕一区| 国产午夜精品在线观看| 手机看片91人妻| 99久久99久久免费精品蜜臀| 亚洲成?V人片在线观看福利| 久久免费99精品久久久久久| 久久超碰国产一区二区三区| 女人天堂av在线播放| 啊啊啊啊啊啊在线| 欧美日韩资源| 日韩性爱小视频| 91欧美大片| 国产精品高潮久久久无码| 91五十路| 岛国1区2区3区在线观看| 翔田千里A片一区二区| 无码一区免费在线不卡| 两女互慰AV高潮喷水在线观看| 欧美成熟性爱精品| 国产精品成人无码a v毛片| 一级做a爰片久久毛片图片| 国产AAAAAABBBBB| 国产女同视频在线播放| 大香蕉一线视频| 欧美v亚洲v日韩v最新在线二区| 玖玖玖玖精品国产剧情| 九九热最新| 花野真衣| 亚洲精品97中文字幕| 极品出轨视频网站| 国产久久久久久| 岛国黄片网站| 操婷婷逼| 九九久久一区二区三区| 98超碰日本| 欧美日韩狠狠爱| 亚洲精品一区二区日本| av无码av无码专区| 啊啊啊com| 加勒比伊人综合| 超碰色大香蕉| 永久免费av无码网站国产app| 国产精品无码久久久久2025| 天天插天天插| 九九九九精品一区| 亚洲男人的天堂va亚洲男人社| 国产色产精品在线观看| 亚洲成熟国产精品美女| 啊啊啊com| 日日妻色网| 精品国产Av无码久久久伦古装| 日韩欧美大力操| 婷婷五月天丁香| 东北女人| 日韩成人无码| 亚洲精品色| 99热 按摩 日韩| 99热久| 成人综合网 欧美| 97中文综合| 强奸乱伦免费网站| 爆乳免费黄网站| 亚洲少妇自拍中文字幕懂色| www.亚洲黄色| 999在线电影香蕉| 国产丸一视频| 久综合国内精品自在自线| 色色五月天婷婷| 丝袜美腿射精91| 无遮挡男女激烈动态图| 亚洲综合五月天婷婷丁香| 91天天爱| 99re热有精品视频国产| 116美女午夜| 97久久国产精品女不卡| 亚洲操逼视频网站| 人人九九精| 国产欧美精选激情视频| 久久99精品九九久久久婷婷| 97超碰磁| 亚洲色图a| 草草草视频在线免费看| 一区久久久二区| 国产精品久久久久婷婷二区次| 午夜精品久久久久久久99蜜桃一| 国产一区二区三区,在线观看观看| 日本成人在线不卡一区二区三区| 夜夜操二区| 美女91网| 蜜臀av在线播放一区二区三区| 精品视频一区二区| 婷婷久久网| 国产97综合| 性爱精品一区| 午夜操操操| 99久久综合网| 淫荡网址| 日本不卡码黄色| TS人妖另类精品视频系列| 综合网欧美在线| 人人操人人肉久久精品| 久久久无码国精品无码三区三区| 不卡在线观看视频| 日日日啊啊啊| www.av在线视频| 大香蕉色欲AV| 国产成人+综合亚洲+天堂| 嗯嗯啊啊啊好爽| 97天天摸天天碰| 欧洲性爱无码区| 欧美老妇综合网| 日本三级一区二区 在线| 久久综合久色欧美综合狠狠| 秋霞曰韩R级| 91熟女网| 欧美72网页| 在线无码操| 九色视频91| 欧美97爱| 中文字幕视频免费| 亚洲中文字幕精品久久久久久直播| 国产91美女视频| 伊人天堂在线| 欧美日韩性爱无码| 男人天堂欧美| 97精品综合久久网| 啊视频在线| 国产日韩精品suv| 最新9久久久9免费视频| 黑操B| 日韩性爱1级片视频| 超碰色大香蕉| 国产乱弄免费在线视频。 | 波多野结衣AV无码一区| 激情小说五月天| 啪啪视频免费在线观看| 美女91色黄18| 和协无码影院| 久久久久婷婷精品av电影| 高清在线不卡一区二区 视频| 秋霞一级视频在线观看免费| 97超碰香蕉| 国产热av| 91美女视频电影| 69精品人人人人| 欧美黄色图片| 亚洲性爱高潮影院| 日韩人妻资源在线看| 久久精品店| 美中日韩无码| 精品一区二区成人| 秋霞影音一区二区三区| 男人高清无码一区二区| 久久性爱精品一区| AV乱伦专区| 国内偷自视频区视频综合 | 蜜臀AV成人精品蜜臀AV久久| 国产一区二区视频在线播放| 日本九九九九| 欧美婷婷| 中文字幕在线免费观看视频| 国产久久男人天堂| 91天堂色男人的天堂| 色欧美色交综合| 九九干| 久久黄色视频一区二区三区 | 一区二区三区四区五区高清无码永久视频| 玖玖爱视频网站| 麻豆AV短剧| 开心激情站| 2017天天操天天日| 99久久久无码精品国产人| 亚洲天堂欧美| 精品视频免费在线一区| 国产精品无码在线| 大香蕉综合| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 99无码视频| 久操热线| 97色色国产视频| 欧美碰碰综合色| ji熟女.com| 精品久久久无码| 免费99精品国产自在在线| 中文乱码字幕观看视频| 国产女人和拘做爰视频 | 亚洲色图图片| 免费一级特黄特色大片在线观看看 | 亚洲第一成人影院色播| 超碰人妻97| 很狠操| 天天超级碰碰碰| 亚洲综合激情五月久久| 日韩欧美久久婷婷网站| 国产麻豆福利av在线播放| 亚洲精品国产av天美传媒| 亚洲日韩精品久久久久一区壹牛| 久久久精品视频免费观看| 亚洲欧美一区二区三区在钱蜜桃| 日本在线不卡v二区| 涩综合导航| 欧美激情视频一区二区三区不卡| 激情文学小说一区二区| 伊人在线大香蕉视频久久| 亚欧免费| 国产久久久久影院老熟女| 欧美日韩*字幕一区| 无码91| 亚洲婷婷丁香在线| 亚洲综合113页| 欧美日本中字另类在线| 九九九九日本 | 岛国小电影| 一区二区日韩欧美久久| 自拍第一页| 免费A V在线播放| 夜夜嗨一区二区三区三州加勒比| 国产家庭乱伦网址| 天久久久噜噜噜久久国产精品爽爽| 亚洲av淫乱| 欧美亚洲首页| 黄色不卡视频| 天堂亚洲精品| 亚洲.欧美.丝袜.中文.综合| 大肥女高潮bbwbbwhd视频| 国产乱子伦久久精品综合一区二区三| 亚洲中文字幕精品久久久久久直播| 伊人久久亚洲色欲综合网站 | 黄总AV色图| 高清无码一区二区三区| 91强奸乱轮| 夜夜躁狠狠躁日日躁av| 2019天天操天天爽天天拍| 久婷婷一区| 五月综合婷婷久久网站| 国产在线激情| 欧美大片一区二区三区| 六六久久日韩不卡| 欧美综合在线第一页| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 一区三区啪啪| 亚洲性高潮| 久久久久网站-538在线视频-欧美永久乱码 | 暴力av在线| 97最新在线播放视频| 精品无人区麻豆乱码1区2区图片| 亚洲天堂另类| 97干97色| 欧美一区二区三区不卡高清视频| 日韩在线观看中文字幕视频| 亚洲诱惑| 亚洲丝袜少妇在线| 亚洲男人的天堂亚洲| 毛片视频白嫩| 99超碰网| 黄色大片免费在线| 日本羞羞的视频在线播放 | 蜜乳AV免费观看| 天天日天天看| 亚洲成成熟女人综合一区二区| A男人的天堂| 亚洲性综合| 99在线啪| 人妻无码一区二区三区久久99| 伊人网在线观看| 久久久久久久久久精| 亚洲精品一卡二卡三卡福利视频网站| 中美日韩毛片| 久草新免费| 超碰免费欧美7| 九热超碰| 九色黄站| 飘花国产午夜精品不卡| 日韩A优精品在线观看| 蜜乳av首页| 亚洲有薄码区日本系列中文字幕| 亚洲一区二区三区麻豆传媒| 丝袜av一区二区三区| 欧美色图在线视频少妇| 91n欧美| 一级性爱视频免费观看| 一区二区三区探花在线观看| 欧美性爱五月天| 日韩欧美成人大香蕉| 大香蕉男人的天堂| 欧美日韩亚洲天堂| 国产精品盗摄 偷窥盗摄| 日韩超碰97| 亚洲日韩成人性爱视频| 69XX一中文字幕人妻91| 天天射天天色成人| 东北女人的毛片| 日韩一级二级三级免费看完整版| 8x福利精品第一福利视频导航| 天天干人妇| 少妇超碰在线| 97视频免费播放| 蜜臀一区二区三区在线 | 试看日韩黄片| 激情五月丁香五月| 欧美伊人久久综合网| 婷婷五月天成人网| 日本加勒比无码专区一二三| 极品综合| 亚洲欧美九九九| 蜜臀99久久精品久久久久| 爱我干综合| 亚洲清纯唯美| 天天精品| 亚洲在线综合| 亚洲精品三| 国产精品久久久久久久久久久久久久久 | 岛国精品视频在线观看 | 精品久久九| 日日噜噜夜夜狠狠视频无| 女人高潮大叫一级毛片| 日韩免费一级性爱视频| 自拍视频一区在线观看| 97在线观视频免费观看| 在线岛| 夜夜 中文视频rt| 98超碰欧美| 综合色图区| 立川理惠被中出无码| 亚洲欧美中日韩| 天天谢天天干| 日本不卡免费二区| 亚洲天堂,男人| 在线观看一级α片刺激高潮视频| 9999伦理视频| 啪啪啪精品视频| 男人天堂新| 加勒比日本在线| 日韩中文字幕视频在线观看| 超碰78| 亚洲美女 晚间男人天堂 | 精品一区二区成人| 免费观看的黄色的网站| 91在线综合网| 国产精品一区二区麻豆| 亚洲欧洲激情卡通另类文学四射小说网站| 日韩天天本| 丁香六月综合激情| 亚洲成人无码影院| 亚洲国产一级黄色视频| 97久久超碰亚洲| 青青草视频久久| 免费亚洲黄色视频在线观看 | 久久99精品九九久久久婷婷| 中文字幕乱妇免费视频| 乱伦AVxx| 国产真实野战在线视频| 色色色综合网| 成人免费毛片| 男啪女色黄无遮挡免费观看| 锕锕好爽 死我在线观看| 亚洲乱色视频一区、二区在线| 青娱乐久久艹| 约操熟妇| 亚洲AV操| 免费看A片毛毛片在线播| 都市久久精品激情亚洲| 亚洲美女av无码| 激情五月天中文字幕色| 久久91| 国产精品视频内谢女人| 黄色视频高清无码网站| 777超碰| 国产精品com| V A在线| 日韩人妻少妇中文字幕| 8050无码八戒| 久久久久国产无av| 十八禁视频网站| 激情文学网伊人| 狼人综合婷婷激情四射 | 操逼视频色| 秋霞影音一区二区三区| 色色五月天激情| 色五91| 天天操女人| 国产1727欧美| 91综合网在线| 香蕉黄色一级视频| 美女尤物人人操| 人人看人人摸人人色| 日韩AV一区二区三区四四| 国产精品福利资源在线尤物| 九九热视频这里只有精品| 特级丰满少妇一级AAAA爱毛片| 91国产丝袜白虎| 久久受www免费人成| 屁股久久久久久| 99老司机精品视频在线观看| 婷婷五月成人| 蜜桃久久久久久久久久久久| 20cm女自慰在线日韩欧美| 亚州免费啪啪视频| 国产精品亚洲免费| 91人妻丝袜无码| 亚洲九月丁香| 欧美91在线| 色综合一本| 美女啊啊啊啊啊啊| 狠狠久久手机视频精品| 777AV电影| 欧美有码激情视频一区二区三区| 蜜臀久久99精品久久久老,,| 97超碰色屌| 亚洲黄色| 26uuu国产免费观看| 亚洲AV资源| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 亚洲啪啪性视频| 丝袜 亚洲 偷拍| 精品久久九| 91 欧美| 日韩黄色电影网站| 91AV天美在线视频| 亚洲日韩视频二区| 情侣开房子拍 日韩无码 女的很漂亮| 精品成人女人久久| 国产亚洲精品无码三区| 日韩精品三区四区| 日韩视频中文字幕| 九九久久九九久久| 久操97| 精品一区二区啪啪啪| 久久精品国产97欧美精品亚洲 | 丝袜综合网| 无码 有码 国产18p| 色婷婷蜜臀av| 亚洲欧洲中文日韩女优乱码| 999久久久九| A久久| 久久性生大片免费观看性| 日韩国产乱子伦App| 免费视频a级毛片免费视频| 午夜呻吟欧美| 久夜操| 91爆操视频| 日韩情色AV| 日韩欧美性吧婷婷乱伦大香蕉| 狠狠激情综合狠狠操中文字幕| 久久久久久中文版| 97视频网站| 天天流夜夜操| 91综合无码| 精品国产肉丝袜在线拍国语| 亚洲精品1区| 国产操逼视频在线观看| 97干com| 97视频在线播放| 婷婷五月天激情小说| 男女香蕉一区二区| 太久视频| 久久人人爽av亚洲精品天堂桃色 | 婷婷五月天成人| 久久9999| 美国一区二区免费视频| 校园春色亚洲无码| 国产亚洲中文不卡二区| 欧美影音在线| 综合操逼| 日韩精品一区,二区 九九...老司机| 99老司机精品视频在线观看| 欧美精品第四五页中文字幕在线观看| 国产精品白领在线观看| 热天堂一区二区| 91视频伊人| 天堂在线一区二区| 久久激情亚洲精品无码?V| 久草久日| 99爱精品| 国产精品高潮久久久无码| 9热9热综合网| 天天操天天干一区二区 | 天堂69亚洲精品中文字| 日韩传媒在线| 无码WWW免费视频网站| 后入日本1234| 国产刺激视频| 一级性爱视频免费观看| 日韩图区| 日韩一级片| 中文字幕欧美丝袜07资源| 日本一二区免费| 日韩精品在线观看观看| 热久久无毒不卡| 天天日天天爽| 最近2018中文字幕在线高清第一页| 91性感网站| 精品久久人妻成人网| 人人操人人肉久久精品| 嗯嗯啊啊用力视频免费| 国产绿奴视频在线观看| 国产农村妇女毛片精品久久| 久久大香蕉手机高清| 亚州一区二区成人片免费| 人妻喷水| 日韩三级网址| 无码乱人伦中文视频| 亚洲风情在线观看| 伦在线97| 色色色综合| 国产精品嫩草久久久久| 国产丝袜啪啪| 歐美性天天| 色婷婷久久| www亚洲免费| 亚洲狠| av东京热男人的天堂| 丁香婷婷色五月| 欧美亚洲一级在线观看| 97亚洲色图| 欧美性爱一区二区三区四区| 色色丁香| 色色香蕉| 国产精品成久久久久午夜午夜| 久久高清无码夜夜操| 久久久工口| 国模精品娜娜一二三区| a一区二区三区乱码在线| 唯美清纯 妖精视频| 午夜AV污污污| 欧美亚洲影视| 色色热| 一起草精品人妻| av天堂精品久久| 国产h小视频在线观看免费| 久9综合在线| 大香蕉男人的天堂| 久久9久9久99久9久9| 91久操| 成人免费不卡在线视频| 一区不卡在线观看av| 亚洲图片欧美色| 色与欲影视天天看综合网| 欧美 亚洲 另类 综合| 天天日日日射| 97色五月天完| 久久九九99| 日韩av乱伦| 日韩一级特黄av毛片| 免费αV在线视频| 男人天堂网站| 偷拍盗拍亚洲色图图片| 少妇精品| 国产白丝网站| 欧美美逼| 色网亚洲人| 超碰欧美97资源| 亚洲大色鬼| 偷拍2020| 亚洲中亚日激情视频| 久久99草| 激情综合网一盗摄| 欧洲自拍色图gif在线| 99在线视频播放| 一本大道综合伊人精品热热| av亚洲天堂资源网站| 久久天天躁日日躁狠狠躁| 色综合加勒比四四季| 丰满少妇一区二区三区四区观看| 青青青国产| 特级大荫道BBwBBwBBW| 欧洲射精91| 国产又大又粗又长视频在线| 亚洲第一色页夜| 啊啊啊不要啊啊受不了了视频在线 | 男人的天堂亚洲| 91neishe| 91九色丨国产丨爆乳| 午夜性| 91N综合在线| 色麻豆AV| 偷拍欧美亚洲| 亚洲无码日韩电影| 亚洲人妻在线精品| 国产福利电影| 欧美成人AⅤ大片在线观看| 久久精品国产亚洲AV无码电影| 国产懂色精品国产av| 五月丁香| 不卡九肏| AV色五月天| 撸无码不卡免费视频| 欧美97爱| 天天激情干| 久久九九网| 欧美久久婷| 色眯眯av| 日本久久超碰| 成人性爱av| 久久激情五月| 人人爱夜夜爱| 941超碰| 日韩15p| 樱花蜜乳av| 久热伊人| 啊啊啊啊啊好大好舒服想要| 婷婷九月丁香| 在线免费观看高清无码视频| 国产亚洲精品av一区| 五月天激情网图片| 国产午夜视频| 操久久久久| 又粗又长又爽在线观看| 五月天色色色| 欧美72网页| 日比av无码| 精品久久久久久中文字幕三区 | 久久人体一区二区| 97超碰色色| 国产操偷| 99啪啪视频| 伊人97| 国产成人欧美一区二区三区的国产| 久久五月综合| 超碰在97| 中英熟女操女| 亚洲av强奸乱伦| 性生活久久久久久久久久| 少妇激情一区二区三区视频| 日本 色 导航| 91国产精品熟女| 天天综合欧美黑人| 北约熟女超碰| 欧美熟爽综合| 久久有码视频| 日韩乱中文 | 亚洲欧美一区二区网址| 五月婷婷基地| 狠狠躁天天躁日日躁97| 100啪啪视频大全| 亚洲中文字幕噜噜噜久久久| 日夜尻逼网| 国产高清26uuu| 天天日日日射| 高潮精品| 色性欧美| 久久男人| 噜噜噜无码AV一级一级久久影院 | 亚洲性爱无码乱伦av| 亚洲青色欧美| 欧美一二三级精品在线| 国产黄a三级三级三级av在线看| 亚洲精品九九九九九九| 加勒比久久综合网高清| 91熟女综合| 无码高清少妇久久| 韩日男人的天堂| 中文视频在线观看| 97超碰国产亚洲精品资源| 一卡二卡三卡| 大香蕉五月天婷婷| 日韩无码服务区| 日本一本道A级黄色毛片试看60分钟| 97色涩| 人人操人人干网页| 九九九九九九成人| 国产操逼视频在线观看| 丝袜天堂| 国产极品精品美女视频| 久久久久久久国产| 国产一区二区三三视频| 东北老女人的激情视频| 日本性交操一区二区不卡系列| 成年男人的天堂| 91国产操逼视频| 熟妇亚洲一区二区三区| 中国AAAAAA黄色片| 色色99| 岛国在线一区二区三区| 亚洲在钱| 大香蕉综合| 欧美日韩中文字幕人妻| 国产精品久久久视频| 亚欧无码线免费观看视频| 欧美狠狠操| 欧美αv.com| 美女爽爽爽刺痛洞洞| 中日高清无码操逼视频| 国产视频第二页| 久久天天性久久伊人| 免费看黄片现成| 校园春色综合香蕉| 一级性爱aaaa| 亚洲人天堂| 无码视频一区二区| 成人福利视频网| 九九久久玖玖| 91性生活久久久| 无码av永久免费专区网站| 九九九不卡| 国精品一区二区三| 东北丰满熟女国产一区| 亚洲天堂电影网99999| 久久久久久久久久久久久久久性生活视频 | 一区AV| 五月天亚洲网| 天美AV片| 色婷婷视频| 色九久| 狠狠色一区二区中文字幕| 自拍鲍鱼一区在线高清观看免费| 日日骚中文字幕| av72网| 欧美亚州手机在线| 青椒国产97在线熟女| 欧美激情高清性猛交| 神马午夜久久久| 99久re热视频精品98| 翔田千里Av在线| 色老大| 97bbn| 久久免费老司机精品| h无码动漫在线观看| 狠狠操狠狠操操| 自拍第一页| 欧美色66| 五月丁香狠狠爱| 国产一区二区a毛片| 日本精品999| 超碰 欧美| 人妻熟女一区二区三区在线| www.狠狠| 亚洲高清无码AAA久久久精品| 国产h小视频在线观看免费| 少妇久久久免费| 少妇人妻精品| 麻豆国产尤物AV| 亚洲精品啪视频| 欧美中文字幕日韩在线| 中文 人妻 制服| 伊人四虎综合| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 日韩日韩日韩-国产乱码精品一区二区| 日韩少妇丰满亚洲| 亚洲色吧网| 午夜男女爽爽爽在线视频| 成人一级性爱| 精品无码一区二区三区色欲| 这里都是精品| 大香蕉日韩欧美| 校园春色中文字幕AV| 久久蜜桃综合网| 欧洲综合视频| 大香蕉婷婷| 日韩精品一区的| 中国东北熟女老太婆内谢| 亚洲无码国产精品久久| 人妻另类 专区 欧美 制服| 亚洲风情在线观看| 亚91网| 国产白丝网站| 亚洲情色 自拍| 欧美偷| 色亚洲欧美| 欧美色老汉| 亚洲综人网| 久久99干一本高清| 日本亚欧爱爱| 少妇人妻在线| 青青草五月份天| 性欧美| 校园春色AV天堂| 友优传媒精品在线一区二区| 高颜值美女口爆高潮浪叫| 新怡红院| BBBBB97COM| 色汉综合| 亚洲精品久久久久毛片A片拉屎| 国产成人91一区二区三区| 久久久精品无码亚免费| 久草免费福利在线播放| 色呦呦呦在线观看视频| 人干人人人操人人摸| ..日韩av毛片精品久久久| 国产一区二区精品久久99| 婷婷激情五月天小说网| 尤物一级在线免费观看| 欧美婷婷五月天| 韩日精品四区| 日本三级小说中文字幕| 九九久久99|