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

ARTICLE DETAIL

資訊詳情

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

SpringBoot+Vue林業(yè)產(chǎn)品推薦系統(tǒng)畢設(shè)項(xiàng)目:前后端分離與協(xié)同過濾算法實(shí)踐

SpringBoot+Vue林業(yè)產(chǎn)品推薦系統(tǒng)畢設(shè)項(xiàng)目:前后端分離與協(xié)同過濾算法實(shí)踐 畢設(shè)選題季一到后臺(tái)私信里問得最多的就是“有沒有一個(gè)能拿得出手、工作量適中、技術(shù)棧又主流的項(xiàng)目”。我通常第一反應(yīng)就是推薦SpringBootVue這套前后端分離的組合——如果再給它安上一個(gè)“推薦系統(tǒng)”的業(yè)務(wù)場(chǎng)景那基本就是一石三鳥技術(shù)棧夠新、業(yè)務(wù)有深度、論文也好寫。這篇博文就完整拆解一個(gè)SpringBootVue林業(yè)產(chǎn)品推薦系統(tǒng)管理平臺(tái)的源碼設(shè)計(jì)思路從需求拆解、技術(shù)選型、數(shù)據(jù)庫(kù)設(shè)計(jì)到前后端核心實(shí)現(xiàn)、部署答辯把整個(gè)項(xiàng)目的來(lái)龍去脈都捋清楚。不管你是正在做畢設(shè)的應(yīng)屆生、想寫課設(shè)的在校生還是單純想練手前后端分離加推薦算法的開發(fā)者這篇文章都能讓你少走不少?gòu)澛贰?. 項(xiàng)目到底做什么需求拆解與功能模塊很多人拿到項(xiàng)目標(biāo)題第一反應(yīng)是“敏度”第二反應(yīng)是“下一個(gè)關(guān)鍵詞”。實(shí)際上任何一個(gè)畢設(shè)項(xiàng)目能拿高分第一步不是寫代碼而是把需求拆明白。推薦系統(tǒng)管理平臺(tái)看起來(lái)是個(gè)通用詞但加上“林業(yè)產(chǎn)品”這個(gè)限定詞之后它的業(yè)務(wù)邏輯就有了明確的落點(diǎn)。1.1 角色與核心業(yè)務(wù)場(chǎng)景這個(gè)系統(tǒng)本質(zhì)上是一個(gè)商城加推薦服務(wù)兩類角色普通用戶消費(fèi)者瀏覽林業(yè)產(chǎn)品比如各類木制品、林下食用菌、堅(jiān)果類、苗木花卉等查看推薦位、搜索產(chǎn)品、加購(gòu)物車、下單購(gòu)買、評(píng)價(jià)打分、收藏關(guān)注。管理員運(yùn)營(yíng)方)負(fù)責(zé)產(chǎn)品上架下架、庫(kù)存管理、訂單審核、用戶管理、推薦策略配置、數(shù)據(jù)統(tǒng)計(jì)展示。兩類角色對(duì)應(yīng)兩套完全不同的界面和接口邏輯這在前后端分離的項(xiàng)目中非常清晰前端做兩套路由體系后端按角色劃分接口權(quán)限。從業(yè)務(wù)場(chǎng)景上說推薦系統(tǒng)的價(jià)值在于“用戶進(jìn)來(lái)之后不需要自己費(fèi)力搜索就能看到感興趣的產(chǎn)品”。林業(yè)產(chǎn)品有很強(qiáng)的分類屬性和產(chǎn)地區(qū)分比如“東北產(chǎn)的紅松子”、“浙江的竹制品”、“云南的野生菌”這些天然的屬性標(biāo)簽非常適合做基于內(nèi)容的推薦同時(shí)用戶的瀏覽、收藏、購(gòu)買行為又可以為協(xié)同過濾提供數(shù)據(jù)來(lái)源——所以這個(gè)題目天然適合做混合推薦工作量不大但講出來(lái)很有深度。1.2 功能模塊清單把系統(tǒng)拆成模塊來(lái)看大致如下模塊子功能說明用戶認(rèn)證注冊(cè)、登錄、個(gè)人資料JWT無(wú)狀態(tài)鑒權(quán)密碼加密存儲(chǔ)產(chǎn)品管理產(chǎn)品CRUD、分類管理、圖片上傳管理端核心功能推薦引擎熱門推薦、基于內(nèi)容推薦、協(xié)同過濾推薦根據(jù)用戶行為動(dòng)態(tài)生成推薦列表交易流程購(gòu)物車、訂單提交、訂單管理簡(jiǎn)潔版交易閉環(huán)評(píng)價(jià)互動(dòng)評(píng)分、評(píng)論、收藏為推薦算法提供行為數(shù)據(jù)統(tǒng)計(jì)報(bào)表銷售統(tǒng)計(jì)、用戶增長(zhǎng)、產(chǎn)品熱度ECharts可視化后臺(tái)管理用戶列表、訂單處理、數(shù)據(jù)看板面向管理員看到這個(gè)清單你就可以判斷這個(gè)項(xiàng)目的代碼量非常適中后端大概二十多個(gè)接口前端十個(gè)左右頁(yè)面絕對(duì)適合一個(gè)人在一到兩個(gè)月內(nèi)完成。推薦引擎部分可以做成一個(gè)獨(dú)立的service工作量大的時(shí)候?qū)憦?fù)雜一點(diǎn)時(shí)間緊就做基于內(nèi)容推薦的簡(jiǎn)化版靈活性很高。2. 技術(shù)選型解析為什么這套組合最適合畢設(shè)很多學(xué)生糾結(jié)于“構(gòu)架用什么好”其實(shí)這個(gè)問題根本不復(fù)雜畢設(shè)項(xiàng)目的核心訴求是穩(wěn)定、主流、能講清楚而不是標(biāo)新立異。SpringBootVue這套組合能成為國(guó)內(nèi)容器之間的事實(shí)標(biāo)準(zhǔn)是有充分理由的。2.1 后端SpringBoot為什么是默認(rèn)答案SpringBoot幾乎就是當(dāng)前Java后端開發(fā)的事實(shí)標(biāo)準(zhǔn)這一點(diǎn)在面試和答辯中天然有說服力。它的核心優(yōu)勢(shì)有三點(diǎn)自動(dòng)化配置不用像SSM那樣寫大量XML配置一個(gè)啟動(dòng)類外加幾個(gè)注解項(xiàng)目就能跑起來(lái)這對(duì)時(shí)間有限的畢設(shè)學(xué)生來(lái)說極其友好。生態(tài)齊全MyBatis-Plus簡(jiǎn)化數(shù)據(jù)庫(kù)操作Spring Security或JWT做鑒權(quán)Redis可插拔文件上傳、郵件發(fā)送、定時(shí)任務(wù)都有現(xiàn)成starter遇到問題網(wǎng)上的文檔和博客一搜一大把。部署輕量打成jar包直接運(yùn)行配合前端靜態(tài)資源一臺(tái)普通服務(wù)器就能跑完整套系統(tǒng)演示非常方便。在具體實(shí)現(xiàn)上我建議優(yōu)先選擇SpringBoot 2.7.x版本。這是一個(gè)非常成熟的穩(wěn)定版本兼容性好遇到坑的概率低。如果你用SpringBoot 3.x需要同時(shí)考慮JDK17和javax到j(luò)akarta的遷移問題對(duì)畢設(shè)來(lái)說完全沒有必要增加這個(gè)負(fù)擔(dān)。2.2 前端技術(shù)棧怎么搭配最省心Vue的版本選擇上我的建議很直接如果你對(duì)Vue還不熟或者指導(dǎo)老師比較傳統(tǒng)就用Vue2Element UI這套組合的資料最多、組件最全、報(bào)錯(cuò)搜索最容易找到答案。如果你有一定前端基礎(chǔ)可以直接上Vue3ViteElement Plus構(gòu)建速度更快組合式API寫起來(lái)也更清爽。前端還需要搭配以下工具Vue Router路由管理實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)與權(quán)限控制。AxiosHTTP請(qǐng)求庫(kù)統(tǒng)一封裝請(qǐng)求頭、攔截器攜帶JWT令牌。Pinia或Vuex全局狀態(tài)管理用于保存登錄狀態(tài)和用戶信息。ECharts數(shù)據(jù)可視化圖表庫(kù)后臺(tái)統(tǒng)計(jì)頁(yè)面的柱狀圖和折線圖靠它實(shí)現(xiàn)。這里我必須強(qiáng)調(diào)一個(gè)選型原則畢設(shè)不是技術(shù)競(jìng)賽能快速實(shí)現(xiàn)、穩(wěn)定演示、方便抄襲不是——方便查找資料的技術(shù)棧才是最優(yōu)解。你在答辯時(shí)不會(huì)因?yàn)橛昧俗钚掳鎂ue3.4加分但會(huì)因?yàn)楣δ芡暾⒀菔玖鲿扯玫胶梅謹(jǐn)?shù)。2.3 推薦算法怎么選三種方案與適配度對(duì)比推薦系統(tǒng)是項(xiàng)目的核心亮點(diǎn)也是論文里最有話可寫的部分。根據(jù)難度遞增排列有三種方案方案類型原理復(fù)雜度推薦場(chǎng)景基于內(nèi)容的推薦根據(jù)產(chǎn)品分類、產(chǎn)地、價(jià)格區(qū)間等特征匹配用戶已購(gòu)/收藏的類似品低新用戶冷啟動(dòng)基于用戶的協(xié)同過濾(UserCF)找到與當(dāng)前用戶興趣相似的其他用戶推薦那些用戶喜歡的物品中用戶行為數(shù)據(jù)積累基于物品的協(xié)同過濾(ItemCF)分析用戶行為計(jì)算物品間相似度推薦相似物品中商城類系統(tǒng)實(shí)際應(yīng)用最多我見過很多學(xué)生一上來(lái)就選“協(xié)同過濾”但其實(shí)他們對(duì)這個(gè)算法完全說不出所以然。我的建議是如果你要寫論文最好把“基于內(nèi)容推薦基于物品協(xié)同過濾的混合推薦策略”作為主要賣點(diǎn)——先用用戶對(duì)產(chǎn)品的分類偏好做初篩再用物品間相似度做排序這樣既解決了冷啟動(dòng)問題又保證了推薦結(jié)果有行為數(shù)據(jù)支撐邏輯非常完整。2.4 數(shù)據(jù)庫(kù)MySQL為什么夠用MySQL對(duì)畢設(shè)項(xiàng)目來(lái)說遠(yuǎn)遠(yuǎn)夠用。整套系統(tǒng)的數(shù)據(jù)量很小單表幾十萬(wàn)條已經(jīng)是上限建議使用MySQL 8.0版本配備Navicat或DataGrip作為可視化工具。字符集一定要選utf8mb4否則中文亂碼會(huì)讓你懷疑人生。3. 數(shù)據(jù)庫(kù)設(shè)計(jì)推薦系統(tǒng)的地基數(shù)據(jù)庫(kù)設(shè)計(jì)決定了推薦算法的上限。很多人的推薦效果差不是算法寫得不對(duì)而是表里根本沒有能用于推薦的行為數(shù)據(jù)。這一節(jié)我把表結(jié)構(gòu)、字段規(guī)劃、關(guān)聯(lián)關(guān)系講清楚你可以照著建庫(kù)。3.1 核心表結(jié)構(gòu)總覽整個(gè)項(xiàng)目至少需要以下數(shù)據(jù)表表名用途關(guān)鍵字段sys_user用戶表id, username, password, role, nickname, avatar, create_timeproduct產(chǎn)品表id, name, category, price, stock, origin, image, description, statuscategory分類表id, name, sort_ordercart_item購(gòu)物車表id, user_id, product_id, quantityorder_info訂單表id, order_no, user_id, total_amount, status, create_timeorder_item訂單明細(xì)表id, order_id, product_id, quantity, pricerating評(píng)分表id, user_id, product_id, score, comment, create_timefavorite收藏表id, user_id, product_id, create_timebehavior_log瀏覽記錄表id, user_id, product_id, behavior_type, create_time3.2 核心字段設(shè)計(jì)與關(guān)聯(lián)關(guān)系先說用戶表。密碼字段必須用BCrypt加密存儲(chǔ)長(zhǎng)度至少設(shè)為60不要用MD5因?yàn)镸D5在答辯時(shí)只要被問一句“安全嗎”就很難接住。角色字段建議用字符串類型比如admin和user而不是用int類型加注釋這樣在JWT里直接存角色名比較好判斷。再看產(chǎn)品表這是整個(gè)系統(tǒng)的中心表。category和origin兩個(gè)字段對(duì)推薦算法至關(guān)重要category決定了產(chǎn)品在內(nèi)容維度上的歸屬origin則是一個(gè)被很多人忽略但非常好用的特征——林業(yè)產(chǎn)品的原產(chǎn)地標(biāo)簽非常明顯用戶可能對(duì)特定產(chǎn)地的產(chǎn)品有偏好例如北方用戶更喜歡東北林區(qū)的堅(jiān)果菌類長(zhǎng)三角用戶對(duì)安吉竹制品有天然認(rèn)同感。這個(gè)字段可以用來(lái)做內(nèi)容推薦的特征向量之一。行為數(shù)據(jù)表是重中之重。很多學(xué)生只建了訂單表做了推薦功能但推薦找不到數(shù)據(jù)輸入這是個(gè)邏輯缺口。我在設(shè)計(jì)時(shí)增加了一個(gè)behavior_log表專門記錄用戶的行為流view表示瀏覽、favorite表示收藏、cart_add表示加購(gòu)、purchase表示購(gòu)買。這張表在用戶每次訪問產(chǎn)品詳情頁(yè)時(shí)寫入一條記錄后面推薦算法直接從這張表取數(shù)據(jù)非常方便。3.3 如何讓數(shù)據(jù)支撐推薦算法推薦算法的核心是構(gòu)造“用戶-物品”興趣矩陣。在代碼實(shí)現(xiàn)里你可以通過如下思路從behavior_log中提取特征-- 查詢用戶對(duì)每個(gè)分類的偏好權(quán)重 SELECT user_id, p.category_id, COUNT(*) AS score FROM behavior_log b JOIN product p ON b.product_id p.id GROUP BY user_id, p.category_id瀏覽記1分收藏記3分加購(gòu)記5分購(gòu)買記10分——這種權(quán)重設(shè)置雖然簡(jiǎn)單但非常有效也非常適合在論文里展開說明。所有推薦策略的計(jì)算都建立在這個(gè)權(quán)重體系之上說服力很強(qiáng)。另外需要注意評(píng)分表rating建議獨(dú)立出來(lái)讓用戶對(duì)已購(gòu)買的產(chǎn)品進(jìn)行1到5星評(píng)分。這是協(xié)同過濾算法最標(biāo)準(zhǔn)的數(shù)據(jù)來(lái)源也是論文里可以詳細(xì)描述的“顯式反饋”數(shù)據(jù)和behavior_log的“隱式反饋”形成互補(bǔ)。4. 后端核心實(shí)現(xiàn)從登錄到推薦這一節(jié)進(jìn)入正題講講后端代碼怎么組織、核心模塊怎么實(shí)現(xiàn)。我按照一個(gè)完整的開發(fā)順序來(lái)講你也可以照著這個(gè)順序?qū)懘a。4.1 項(xiàng)目結(jié)構(gòu)與分層設(shè)計(jì)后端項(xiàng)目的包結(jié)構(gòu)建議如下com.example.forestry ├── config // 配置類CORS、攔截器、MyBatis-Plus分頁(yè) ├── controller // 控制器層接收前端請(qǐng)求 │ ├── admin // 管理員相關(guān)接口 │ └── user // 用戶相關(guān)接口 ├── service // 業(yè)務(wù)邏輯層 ├── mapper // MyBatis-Plus的數(shù)據(jù)訪問層 ├── entity // 實(shí)體類對(duì)應(yīng)數(shù)據(jù)庫(kù)表 ├── dto // 數(shù)據(jù)傳輸對(duì)象接收前端參數(shù) ├── vo // 視圖對(duì)象返回給前端的數(shù)據(jù) ├── utils // 工具類JWT工具、Result封裝 └── recommendation // 推薦算法核心邏輯分層設(shè)計(jì)的意義不僅僅是“規(guī)范”更重要的是讓答辯時(shí)你能清楚地解釋每一層在做什么。Controller只負(fù)責(zé)接收參數(shù)和返回結(jié)果Service負(fù)責(zé)業(yè)務(wù)邏輯Mapper只做數(shù)據(jù)庫(kù)交互這種標(biāo)準(zhǔn)的三層結(jié)構(gòu)是面試官和答辯老師最認(rèn)的套路。4.2 JWT登錄鑒權(quán)的完整實(shí)現(xiàn)當(dāng)前端請(qǐng)求/api/user/login時(shí)后端流程如下接收用戶名和密碼調(diào)用UserService.login()方法。根據(jù)用戶名查詢用戶用BCrypt校驗(yàn)密碼。校驗(yàn)通過后利用JWT工具類生成token將用戶id和角色寫入token的payload。返回給前端前端存儲(chǔ)到localStorage或Pinia。之后的每次請(qǐng)求前端在axios攔截器中把token放入Authorization請(qǐng)求頭。后端需要有一個(gè)攔截器統(tǒng)一攔截需要登錄的請(qǐng)求。我的實(shí)現(xiàn)習(xí)慣是寫一個(gè)AuthInterceptor在preHandle中從請(qǐng)求頭取出token解析并校驗(yàn)然后把用戶信息放ThreadLocal中方便后續(xù)業(yè)務(wù)代碼取用。Component public class AuthInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String token request.getHeader(Authorization); if (StringUtils.hasText(token)) { Claims claims JwtUtil.parseToken(token.replace(Bearer , )); if (claims ! null) { UserThreadLocal.set(claims.get(userId, Integer.class), claims.get(role, String.class)); return true; } } response.setStatus(401); return false; } }注意管理員的接口需要額外校驗(yàn)角色我建議在攔截器里加一個(gè)簡(jiǎn)單的路徑判斷邏輯凡是/api/admin/**開頭的接口必須要求角色為admin。4.3 產(chǎn)品管理和圖片上傳產(chǎn)品管理對(duì)后端來(lái)說就是標(biāo)準(zhǔn)的CRUD但圖片上傳是個(gè)容易踩坑的點(diǎn)。林業(yè)產(chǎn)品圖片往往比較大我的建議是后端接口接收MultipartFile保存到本地磁盤的/upload目錄。文件名用UUID 原始后綴名拼接避免重名覆蓋。返回給前端時(shí)返回相對(duì)路徑比如/upload/20240101103000_a1b2c3.jpg。配置一個(gè)WebMvcConfigurer把/upload/**映射到實(shí)際存儲(chǔ)目錄實(shí)現(xiàn)靜態(tài)資源訪問。前端在Element UI的el-upload組件中配置action為后端接口地址headers中帶上token上傳成功后把返回的圖片路徑綁定到表單的image字段。這里最常見的問題是本地文件拿不到權(quán)限需要在application.yml中配置file: upload-path: /Users/yourusername/forestry/upload/這種本地存儲(chǔ)方案對(duì)畢設(shè)來(lái)說完全可行。如果以后想優(yōu)化可以換OSS云存儲(chǔ)但那是加分項(xiàng)不是必選項(xiàng)。4.4 推薦算法的核心代碼思路這一節(jié)是整個(gè)項(xiàng)目的靈魂。我基于前面提到的行為權(quán)重給出一個(gè)基于物品協(xié)同過濾的簡(jiǎn)化實(shí)現(xiàn)思路。第一步從behavior_log計(jì)算每個(gè)用戶的“產(chǎn)品-行為權(quán)重向量”。public MapInteger, Double getUserPreferenceVector(Integer userId) { // 查詢用戶的所有行為記錄 ListBehaviorLog logs behaviorLogMapper.selectList( new LambdaQueryWrapperBehaviorLog().eq(BehaviorLog::getUserId, userId)); MapInteger, Double productScoreMap new HashMap(); for (BehaviorLog log : logs) { double weight BehaviorWeight.getWeight(log.getBehaviorType()); productScoreMap.merge(log.getProductId(), weight, Double::sum); } return productScoreMap; }第二步計(jì)算物品間相似度。最常用的方式是余弦相似度需要構(gòu)建“產(chǎn)品-用戶”倒排表然后計(jì)算兩兩之間的余弦值。如果直接從零開始寫這部分代碼工作量其實(shí)不小。我的建議是只計(jì)算當(dāng)前用戶已行為過的物品與其他物品之間的相似度而不是計(jì)算全部物品對(duì)。第三步生成推薦列表——取當(dāng)前用戶最喜歡的N個(gè)物品找到與它們最相似的M個(gè)物品過濾掉用戶已經(jīng)購(gòu)買過的按相似度加權(quán)得分排序取前K個(gè)。public ListProduct recommendForUser(Integer userId, int topN) { MapInteger, Double userVector getUserPreferenceVector(userId); SetInteger seenProducts userVector.keySet(); MapInteger, Double recommendScores new HashMap(); for (Integer interactedProductId : seenProducts) { MapInteger, Double similarProducts itemSimilarityService.getTopSimilar(interactedProductId); for (Map.EntryInteger, Double entry : similarProducts.entrySet()) { if (seenProducts.contains(entry.getKey())) continue; recommendScores.merge(entry.getKey(), userVector.get(interactedProductId) * entry.getValue(), Double::sum); } } // 排序取前N個(gè)返回產(chǎn)品列表 }這種實(shí)現(xiàn)的可解釋性非常強(qiáng)因?yàn)槟憧梢哉f“用戶收藏了潮州鳳凰單叢茶該產(chǎn)品與福建武夷山紅茶相似度0.82所以推薦了后者”這在論文的案例分析章節(jié)里非常好用。第三步里有個(gè)點(diǎn)需要特別說明物品相似度表怎么計(jì)算和存儲(chǔ)。為了提高效率我建議寫一個(gè)定時(shí)任務(wù)每天凌晨用Scheduled(cron 0 0 2 * * ?)重新計(jì)算一次物品相似度矩陣存入一張獨(dú)立的product_similarity表。這樣推薦接口只需要查詢這張表響應(yīng)速度非常快不會(huì)超時(shí)。5. 前端Vue實(shí)踐從頁(yè)面設(shè)計(jì)到權(quán)限控制后端搭好了前端才是用戶看得見摸得著的部分。Vue這邊最核心的工作是工程結(jié)構(gòu)搭建、路由權(quán)限控制、接口封裝、頁(yè)面組件實(shí)現(xiàn)。5.1 前端工程結(jié)構(gòu)與路由設(shè)計(jì)我推薦的前端目錄結(jié)構(gòu)如下src ├── api // 接口定義按模塊拆分 ├── assets // 靜態(tài)資源 ├── components // 公共組件如ProductCard、Pagination ├── router // Vue Router配置 ├── store // Pinia狀態(tài)管理 ├── views │ ├── user // 用戶端頁(yè)面首頁(yè)、產(chǎn)品列表、詳情、購(gòu)物車、訂單 │ └── admin // 管理端頁(yè)面控制臺(tái)、產(chǎn)品管理、用戶管理、數(shù)據(jù)分析 ├── utils // axios封裝、token存取 └── App.vue路由設(shè)計(jì)上建議有明確的嵌套關(guān)系。用戶端和管理端使用不同的布局組件例如AdminLayout包含側(cè)邊欄UserLayout包含頂部導(dǎo)航欄。路由懶加載用() import(...)就能實(shí)現(xiàn)這可以有效減小首屏加載體積是一個(gè)值得在答辯中提到的優(yōu)化點(diǎn)。5.2 路由守衛(wèi)與權(quán)限控制前端做權(quán)限控制有兩個(gè)層路由守衛(wèi)和后端接口鑒權(quán)。路由守衛(wèi)負(fù)責(zé)“不讓沒權(quán)限的人進(jìn)入頁(yè)面”接口鑒權(quán)負(fù)責(zé)“即使前端繞過了路由后端也拒絕返回?cái)?shù)據(jù)”。router.beforeEach((to, from, next) { const token localStorage.getItem(token); if (to.meta.requiresAuth !token) { next(/login); } else if (to.meta.requiresAdmin localStorage.getItem(role) ! admin) { next(/403); } else { next(); } });這個(gè)守衛(wèi)邏輯寫起來(lái)非常簡(jiǎn)單但對(duì)系統(tǒng)安全性的提升卻很直接。配合后端攔截器就形成了雙重防線。5.3 axios封裝與Token管理axios封裝是前端的公共基礎(chǔ)模塊建議做以下配置const request axios.create({ baseURL: /api, timeout: 10000 }); request.interceptors.request.use(config { const token localStorage.getItem(token); if (token) { config.headers.Authorization Bearer token; } return config; }); request.interceptors.response.use(response { const res response.data; if (res.code ! 200) { ElMessage.error(res.message); return Promise.reject(new Error(res.message)); } return res; }, error { if (error.response error.response.status 401) { localStorage.removeItem(token); router.push(/login); } return Promise.reject(error); });在封裝中統(tǒng)一處理401跳轉(zhuǎn)是很多線上項(xiàng)目必備的基礎(chǔ)能力加了這段代碼答辯時(shí)老師問“如果token過期了怎么辦”你可以直接給出完整方案。5.4 推薦位、產(chǎn)品展示和后臺(tái)看板的實(shí)現(xiàn)要點(diǎn)用戶端首頁(yè)是推薦系統(tǒng)的門面。我建議頁(yè)面布局為頂部搜索欄下面是3行產(chǎn)品卡片第一行“為你推薦”第二行“熱門產(chǎn)品”第三行“同類新品”。每行展示4個(gè)產(chǎn)品卡片每個(gè)卡片展示產(chǎn)品主圖、名稱、價(jià)格、產(chǎn)地標(biāo)簽、評(píng)分星星。點(diǎn)擊進(jìn)入產(chǎn)品詳情頁(yè)。后臺(tái)統(tǒng)計(jì)頁(yè)面用ECharts畫3張圖銷售趨勢(shì)折線圖按月份統(tǒng)計(jì)訂單金額。分類銷售占比餅圖按產(chǎn)品分類統(tǒng)計(jì)銷售數(shù)量。用戶活躍度柱狀圖每天的用戶訪問量。數(shù)據(jù)接口可以由后端的/api/admin/statistics統(tǒng)一返回用Map封裝好各圖表對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)前端拿到數(shù)據(jù)后setOption即可。這里有一個(gè)很實(shí)用的技巧讓后端直接返回前端要的JSON格式不要在ECharts里做復(fù)雜的數(shù)據(jù)格式化省時(shí)省力不出錯(cuò)。6. 前后端聯(lián)調(diào)、打包部署與答辯包裝代碼寫完不是終點(diǎn)。聯(lián)調(diào)、部署、寫論文、準(zhǔn)備答辯每個(gè)環(huán)節(jié)都有講究。6.1 前后端聯(lián)調(diào)那些事最常見的聯(lián)調(diào)坑就是跨域。后端的CORS配置要做三層保障SpringBoot中寫一個(gè)CorsConfig允許所有來(lái)源。如果使用了Spring Security需要在安全配置中也放行OPTIONS請(qǐng)求。前端部署時(shí)通過Nginx反向代理把/api轉(zhuǎn)發(fā)到后端端口這從根本上避免跨域問題。此外前后端接口字段的命名一致性也非常重要。建議約定后端返回JSON統(tǒng)一為{code: 200, message: success, data: {...}}格式所有時(shí)間字段統(tǒng)一為yyyy-MM-dd HH:mm:ss格式分頁(yè)參數(shù)統(tǒng)一為current和size。不要小看這些約定它們能讓你在調(diào)試時(shí)省一半時(shí)間。6.2 部署方案本地演示和服務(wù)器發(fā)布畢設(shè)演示最穩(wěn)妥的方式是本地運(yùn)行。前端npm run build后生成dist目錄后端打成jar包兩者放在同一臺(tái)機(jī)器上。最簡(jiǎn)單的部署方式有兩種方案一后端jar包 前端dist目錄放SpringBoot的static目錄下打成同一個(gè)jar直接運(yùn)行。方案二前端dist放到Nginx的html目錄Nginx配置反向代理轉(zhuǎn)發(fā)/api請(qǐng)求到后端8080端口。我推薦方案二因?yàn)镹ginx的配置過程本身就可以在答辯時(shí)多講兩句“生產(chǎn)環(huán)境部署”顯得專業(yè)。關(guān)鍵配置如下server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.html; location / { try_files $uri $uri/ /index.html; } location /api/ { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }配置單里try_files是解決history模式路由刷新404的關(guān)鍵很多人第一次部署都栽在這里這里提前給你排掉這個(gè)坑。6.3 從代碼到論文工作量與答辯要點(diǎn)論文結(jié)構(gòu)可以參考我的建議順序第一章緒論寫背景、國(guó)內(nèi)外研究現(xiàn)狀、研究?jī)?nèi)容。第二章相關(guān)技術(shù)介紹寫SpringBoot、Vue、推薦算法、MySQL。第三章系統(tǒng)需求分析寫用例圖、功能需求、非功能需求。第四章數(shù)據(jù)庫(kù)設(shè)計(jì)寫ER圖、表結(jié)構(gòu)詳細(xì)的字段描述。第五章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)寫推薦模塊的算法流程、核心代碼截圖、頁(yè)面截圖。第六章系統(tǒng)測(cè)試寫測(cè)試用例表和測(cè)試結(jié)果。需要特別注意推薦算法章節(jié)是論文中最能體現(xiàn)技術(shù)含量的部分。建議在這一章畫一個(gè)清晰的算法流程圖比如“用戶行為采集 → 行為權(quán)重計(jì)算 → 用戶偏好向量構(gòu)建 → 物品相似度計(jì)算 → Top-N推薦列表生成”配合一個(gè)具體案例完整走一遍推薦過程例如“用戶A收藏了東北松子系統(tǒng)推薦了云南核桃相似度0.76”這會(huì)讓答辯組眼前一亮。答辯時(shí)PPT的核心頁(yè)面也應(yīng)圍繞推薦系統(tǒng)展開第一頁(yè)放功能架構(gòu)圖中間講3分鐘推薦模塊的算法實(shí)現(xiàn)最后一頁(yè)放演示截圖。只要你把推薦邏輯講透其他CRUD頁(yè)面一句帶過就足夠了因?yàn)槔蠋熆粗械牟皇琼?yè)面多少而是你有沒有真正理解核心代碼。7. 踩坑實(shí)錄實(shí)戰(zhàn)中常見問題與排查技巧最后分享一些我在實(shí)操中真實(shí)遇到且非常高頻的坑。這些問題如果你提前知道至少能省出三五天查資料的時(shí)間。問題現(xiàn)象原因與解決前端刷新頁(yè)面404項(xiàng)目部署到Nginx后直接刷新子路由頁(yè)面顯示404Vue Router history模式需Nginx配合location /添加try_files $uri $uri/ /index.html跨域請(qǐng)求失敗瀏覽器Console顯示CORS錯(cuò)誤后端未配置CORS或配置了但攔截器先攔截了OPTIONS預(yù)檢請(qǐng)求需放行OPTIONS中文亂碼數(shù)據(jù)庫(kù)中文顯示為問號(hào)數(shù)據(jù)庫(kù)連接URL加characterEncodingutf8建表時(shí)charset設(shè)utf8mb4JWT過期后跳轉(zhuǎn)失效用戶操作時(shí)一直報(bào)401但不跳登錄頁(yè)前端axios響應(yīng)攔截器需統(tǒng)一處理401狀態(tài)碼清除token并跳轉(zhuǎn)/login文件上傳成功但圖片不顯示控制臺(tái)404訪問/upload/xxx.jpg找不到未配置靜態(tài)資源映射需要WebMvcConfigurer中addResourceHandlers(/upload/**, file:絕對(duì)路徑/)分頁(yè)數(shù)據(jù)不正確后端返回total為0或分頁(yè)數(shù)據(jù)缺失MyBatis-Plus需要注冊(cè)PaginationInnerInterceptor分頁(yè)插件并不是引入依賴就自動(dòng)生效時(shí)間字段顯示為時(shí)間戳前端顯示一串?dāng)?shù)字后端實(shí)體類時(shí)間字段加JsonFormat(patternyyyy-MM-dd HH:mm:ss, timezoneGMT8)推薦接口響應(yīng)超慢用戶點(diǎn)擊推薦位轉(zhuǎn)圈很久不要實(shí)時(shí)計(jì)算相似度使用定時(shí)任務(wù)預(yù)計(jì)算存入表中接口直接查結(jié)果這些問題中前四個(gè)是出現(xiàn)概率最高的。如果你在開發(fā)過程中遇到直接對(duì)照表格排查基本都能解決。還要提一個(gè)容易被忽略的點(diǎn)密碼安全問題。很多畢設(shè)項(xiàng)目把用戶密碼明文存儲(chǔ)答辯時(shí)老師一旦問起就會(huì)很尷尬。你只需要在Service層調(diào)用一下BCryptPasswordEncoder的encode和matches方法代碼量不超過10行卻能把項(xiàng)目整體安全性提升一個(gè)檔次千萬(wàn)不要省這個(gè)功夫。另外關(guān)于代碼注釋。我見過很多學(xué)生的源碼注釋極其稀缺CI/CD、Docker這些詞離畢設(shè)太遙遠(yuǎn)但“注釋變量作用、說明方法用途”這種基礎(chǔ)專業(yè)素養(yǎng)是必須的。特別是推薦算法這段代碼代碼塊要寫清楚每一步做了什么這既方便你自己回顧代碼也是答辯時(shí)回應(yīng)質(zhì)疑的底氣。寫在最后一些比較實(shí)在的建議這個(gè)項(xiàng)目做完之后我個(gè)人最大的體會(huì)就是畢設(shè)選題無(wú)所謂高大上關(guān)鍵是你有沒有把一個(gè)點(diǎn)真正吃透。SpringBootVue這套技術(shù)棧真正練過一遍后端分層、前端交互、數(shù)據(jù)庫(kù)設(shè)計(jì)、部署調(diào)試這些基本功都能過一遍而這些恰恰是相關(guān)崗位面試時(shí)最常被考察的內(nèi)容。推薦系統(tǒng)作為一個(gè)業(yè)務(wù)亮點(diǎn)既不會(huì)要求你啃多么復(fù)雜的數(shù)學(xué)公式——用余弦相似度和加權(quán)融合策略完全可以講清楚——又能讓你在答辯中有一段完整的推導(dǎo)過程可以展開性價(jià)比非常高。如果你時(shí)間比較緊可以先把基本CRUD跑通保證系統(tǒng)能正常演示再逐步完善推薦功能如果你時(shí)間充裕我建議你在推薦模塊的基礎(chǔ)上再加一個(gè)簡(jiǎn)單的搜索關(guān)鍵詞聯(lián)想功能或者給后臺(tái)增加一個(gè)基于時(shí)間范圍的銷售統(tǒng)計(jì)導(dǎo)出Excel這些錦上添花的小功能能讓項(xiàng)目完成度明顯提升。最后分享一個(gè)小經(jīng)驗(yàn)項(xiàng)目做完之后建議你花一個(gè)晚上的時(shí)間把推薦接口從頭到尾捋一遍然后對(duì)著代碼畫一張邏輯流程圖。這既是寫論文的素材也是應(yīng)付“請(qǐng)介紹一下你這個(gè)項(xiàng)目的核心模塊”這類面試題的最好準(zhǔn)備。拿到這份源碼之后多問自己“為什么這么設(shè)計(jì)”而不是急著啟動(dòng)運(yùn)行收獲會(huì)大得多。祝你的畢設(shè)答辯順利。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲美女30b| 男人综合网| 久久久久久久国产a∨| 欧洲一区二区三区四区在线观看| 色爱国产| 一区二区三区黄片免费观看| 揉揉揉夜夜| n1038 一二三区| 久久婷婷色| 久久久久亚洲AV无码专区少妇| 97久久超碰亚洲| 大香网伊人久久综合网eew| 91久久久久久| 日韩性爱网址| 免费A V在线播放| av一区二区三区不卡| 老熟妇一区二区三区| 91色图片| 蜜臀AV成人精品蜜臀AV久久| 久久香蕉国产传媒一区剧情天美| 激情啪啪拍91| 中文字幕123| 岛国福利在线精品播放| 国产视频人人网| 久操网无码在线| 精品九九九九九| 久久久久精| 综合激情五月天| 麻豆AV96熟妇人妻| 九月色婷婷| 五月婷婷综合激情| 校园春色 男人天堂| 欧美 亚洲 偷拍自拍| 亚洲成?V人片在线观看福利| 嗯啊抽插大香蕉网页| 丁香九月激情啪| 国产精品久久久久久久AV大片 | 中文字幕天堂在线| 东京热,男人的天堂| 97超碰色色| 乱伦日本中文自拍| 美女自卫慰黄网站免费| 精吧天堂| 内射夫妻三片| 亚洲第一无码播放立川理惠| 日本一级黄色电影| 手机在线人成免费视频| 欧美一区二区三区大综合| 男人天堂毛片| 操人人| 九九AV| 日本欧美亚洲高清在线看| 亚洲日产专区婷婷| 嗯嗯啊啊视频在线看| 无码137片内射在线影院| 蜜臀无码一区二区| 曰韩精品九九无码| 久久riav中文精品| 永久免费观看的毛片的网站| 亚洲诱惑天堂 | 天堂无码| 91激情国产| 国产一区96在线| 正在播放国产精品一区| 青草一区二区| 91精产一区二区三区| 久久久激情| 少妇厨房愉情理伦片bd在线观看| 亚州欧美在线| 久久精品99久久久久久| 天堂日本亚洲欧美| 国产精品99久久久www| 亚洲欧美成人网站AAA| 亚洲精品黑丝| 嫩草影院永久在线制服丝袜| 狠狠综合| 伊人影院综合是一个与深夜成人在线| 超碰美女97| 国产亚洲日本| 校园春色欧美色图| 丁香五月色| 综合五月婷婷亚洲一区| 亚洲一区二区三区婷婷| 日日干夜夜欢| 黄色小说亚洲| 欧美男人一区| 午夜福利免费精品视频| 2017人人操,人人摸| 新怡红院| 国模久久在线| 欧美一区二区三区成人性生活| 99久久com免费视频′| 日韩AV熟女乱伦| 51久久夜色精品国产麻豆| 亚洲欧美97| 熟女高潮合集-永久久久-成人AV| 射丝袜高跟鞋99| 欧美婷婷五月天| 丁香九月 婷婷| 久久这里只精品| 色在线69堂| 亚洲熟妇熟在线电影视频| 大香樵伊人网| 91黑丝露脚| 国模精品娜娜一二三区| 国产成人免费观看在线视频| 国产乱色国产精品免费视| 久久精品无码熟妇一区二区三区视频导航 | 婷婷爽人人婷婷爽视频| 91N综合网| 亚洲91射| 夜夜性| 亚洲狠狠入| 久久久内射良家| 中文字幕精品久久久久人妻红杏ⅰ| 性感女人网页在线观看视频| 亚洲色图在线视频| 婷婷激情一区二区三区俺也去| 野狼激情网| 欧美亚洲综合色| 这里只有精品久久| 中文字暮97| 日本精品一区三区| 东京太热久久久| 精品人妻1237| 欧美性爱一内片一区二区三区| 日韩美一区| 久久熟女人| 国产人伦精品一区二区三区 | 婷婷丁香激情| 性天堂| 欧美色涩| 亚洲**2021在线观看| 国产偷拍网站| 在线观看高清AV| 人妻中文字幕精品无码| 91快色色色色色| 欧美人与性动交a美精品| 亚洲最新中文字幕免费| 一个人免费HD91视频| 在线观看中文av字幕| 国产女人91精品嗷嗷嗷嗷| 手机在线看片免费人成视频| 五月婷婷综合在线| 97天天做| 亚洲色棕合| 日本三级精品| 草草电影院| WWW操逼| 99精品欧美一区二区三区桃色| 黄片无码在线制服| 91美女视频在线| 吉川爱美亚洲二区在线| 少妇人妻在线| 亚洲国产一级黄色视频| 国产一区二区欧美日本| 人妻少妇精品一区二区三区| 人人爽夜夜操| 亚洲在线91| 国产呦精品系列在线观看| 欧美人人曰人人操人人射射| 婷婷综合激情| 天天综合有色网| 久久久久网站-538在线视频-欧美永久乱码| 国产成人主播| 日日躁夜夜躁狠狠躁超爽| TS人妖另类精品视频系列| av网站在线观看了| 91精品国产综合久久久蜜臀| 变态综合色| 涩综合导航| 中文字幕日本久久| 人妻无码视频一区二区三区久久| 欧美色涩| 国内毛片国产专区二| 91 刺激在线| 日韩美女,国产传媒,视频一区| 日韩精品人妻中文字幕不卡乱码| 精品人妻免费观看| 亚洲福利中文字幕在线| 天天摸天天舔天天操| JuliaAnn丝袜熟女系列| AAAAAAAAA黄片| 亚洲第一页色| 亚洲蜜臀精品视频久久| 天天色,天天干,天天干| 激情露脸爱| 99精品综合久久久久五月天| 亚洲黄色a级片| 国产视频三区四区| 啊啊嗯嗯好爽| 午夜高清成人在线视频| 色诱avtt| 白丝av| 免费看日产一区二区三区| 久久久久久91香蕉国产| 极品销魂美女一区二区| 亚码激情| 九九操久久国产免费视频| 亚洲欧洲综合av在线| www.婷婷六月天| 99日免费视频中文字幕| 人人操肉肉| 伊人大香蕉在线| v91av| 九九性爱网| 少妇色综合| 久久黄片国产一区二区| 久久免费看高潮毛片韩国| 欧美综合网在线| 久久九九99| 神马九九九| 国产av强奸美女| 亚洲男人的天堂V| 99re这里只有精品9| 久久老子无码午夜伦不卡| 另类视频在线| 大香网站| 欧美色图人妻| 亚洲国产成人福利在线观看| 五月天亚洲网| 亚洲天堂无码| 好湿好紧视频| 色999人与兽| 网友自拍第1页| 色婷婷五月综合激情中文字幕| 国产成人主播| 乱伦图一区| 国产精品久久久九九九| 一级黄色视频网| 九九夜精品九九在线| 欧美一区二区男人天堂| 欧美色图天堂网m| 国内毛片欧美香蕉精品| 欧美少妇高潮久久91| 影音先锋乱伦资源| 欧美综合色| 日韩操人| 偷拍精品一区二区三区| 少妇一区二区三区在线观看| 国产亚洲日韩在线三区黑人| 91精品国产乱码| 尤物一级在线免费观看| 欧美色图另类图片| 亚洲麻豆精品二区三区| 国产h小视频在线观看免费| 97久精品| 欧美黄色大片在线观看 | 人人操人人叉人人插人人| 97网址97| 99自拍视频在线观看| 久久αⅴ| 亚洲男人天堂网久久| 老熟女乱伦片| 一区二区视频你懂的| 欧美十八禁网站| 九九九九九九九九九国产精品 | 国产欧美日韩女同性恋ww喷水精品| 欧美不在线| 亚洲第一页欧美| 天天弄天天操| 亚洲欧美国产精品久久久久久久| 色综合98| 精品国产一区二区三区香蕉欧美| 欧美综合777| 婷婷丁香在线| 日韩无码操逼片| daxiangjiao你懂的| 日韩不卡av一二三| 久久国产熟女影院| 亚洲久久东京热一二三四五区视频| 超碰碰碰碰| 精品人妻一区二区三区四区石在线 | 亚洲中文丝袜美腿诱惑字幕| 亚洲最大黄网| 亚洲精品a人片在线观看视| 91亚洲影视| 免费网站观看www在线观| 国产不卡免费在线视频| 曰韩人妻中文字幕在线 | 久久久久久久唑| 国产熟妇一区二区| 天天欧美欧美亚洲网| 97在线精品观看视频| 国产精品丝袜在线| 91天美传媒在线观看| 国内精品伊人久久久久影院会| 欧美色涩| 综合色久欲| 99爱久久视频频| 果冻国产精品麻豆成人av| 大JI巴好深好爽又大又粗视频| 国产后入内射| 老师充足的奶水小说| 女人高潮大叫一级毛片| 欧美日韩另类在线播放| 94色色电影网| 公司1区2区3区精产精| oumeisetu综合| 久久av成人无码免费| 国产精品视屏| 欧美91网| com 首页 18岁 禁区 女优 免费 精选 同城 | 亚洲情色电影网| 中文字幕一区二区韩| 国产色产精品在线观看| 一区二区三区麻豆| 超碰97导航| 亚洲码和欧洲精品激情系列| 性站| 亚洲天堂久久| 欧美黄色大香蕉一区二区| 综合国产影视三级| av网站免费线看| 久久 精品| 日本2020一区二区| 91少妇通奸网站| 六月丁操逼| www四虎| 久/久精品99看9| 一区二区三区黄片免费观看| av网站免费线看| 中文一区二区三区影院| 国产精品久久久久婷婷二区次| 欧美日本视频一区| 久久久久久久久国产| 97视频在线观看高清资源| 99色色| 无码伊人久久大杳蕉中文无码| 丰满岳乱妇一区二区三区| 最新亚洲黄色免费电影| 欧洲黄色网| 激情色图| 91av熟女人妻| 成人小说另类在线| www.99中文字幕| 中文字幕一区二区日韩网| 亚洲成人在线高清| 99re公开精品免费视频 | 亚洲色图欧美色图制服丝袜| 综合国产97| 中文字幕91综合| 四虎影视在线| 欧美天堂日韩三级国产传媒| 91色图片| 超碰欧美在线欧美| 精久久久| 亚洲色图欧美色18直播在线| 粉嫩av一区二区三区天美传媒 | 激情第四色| 色色色综合| 首页亚洲国产高跟丝袜诱惑视频 | 成年女人一区| 亚洲第一页欧美| 久久爽爽精品| 97超碰免费生活| 91激情国产| 夜夜高潮夜夜爽夜夜爱爱一区| 青青草依人大香蕉| 日韩av无码网站| 欧美一二三级精品在线| 精品人妻一区二区视频| www.色99| 色女99一级片在线观看| 日韩精品影视| 男人的天堂99| 久久黄片国产一区二区| 伊人色综合网电影| 亚洲综合色男人网| 影音先锋一区二区在线资源| chaopen97久久| 日比av无码| 人人操人人93| 日本成人电影资源网| 激情五月天视频| 大香蕉色十月| 欧美一级专区免费大片| 日本久久久久久久久久| 欧美日韩大香蕉| 天天弄天天操| 狠狠爱综合网| 伊人久久大香线综合无码| 破处bbq| 97亚洲精品超碰| 亚洲色图尤物视频| 婷婷五月花| 97干天天| 亚洲成成熟女人综合一区二区| 家庭乱伦麻豆| 天天干天天操天天干天天操| 亚洲天堂人妻一区二区| 日日干夜夜欢| 中文字幕国产在线天堂| 婷婷91| 天天日天天舔东京热 | 日本视频在线中文字幕| 久久婷婷综合国际产色怕| 97色插| 色香综合天天影视综合 | 九九热在线精品视频| 久久三区四区| 一区操逼日比视频| 天天综合AV| 蜜桃狠狠色伊人亚洲综合| 国产一级高清免费观看| 久久精品国产72国产精品福利| 夜夜爽爽爽| 啊啊啊啊啊啊啊网址在线观看| 91丨人妻丨国产丨丝袜| 夜色AV无码手机在线影院| 久久精品免费| 九九九国产| 精品少妇人妻av久久免费| 婷婷香蕉欧美在线一区二区三区| 人妻人久久精品中文字幕| 欧美综合国产精品久久丁香| 999狠狠综合| 96一区二区三区| 97精品熟女少妇一区| 亚洲s在线观看| 黑人在线91| 欧美视频一区二区在线| 国产成自自拍在线观看| 国产精品爆乳懂色蜜乳| 天天摸,夜夜摸| 51一区二区三区| 亚洲国产奇米影视久久| 超碰97网址| 97aiaiai| 亚洲国产一区二区三区在线| 亚洲骚逼少妇| 操91| 91n处女在线观看| 国产97视频免费观看| 亚洲欧美精品久| 亚洲啪啪视频免费| 久久偷拍人| 欧洲性爱无码区| 野狼激情网| 国产精品久久久久婷婷二区次| 激情久久久| 九九九精品色乱九九九| 亚洲第一黄色av网站| 97 九色| 13小男生GAY自慰脱裤子| 青青草视频这里只有精品| 另类小说欧美激情校园春色| 五月婷婷综合激情| 日韩精品一区二区人人人| 日韩性爱播放| 33044男人的天堂深夜备| 多乙久久久久久| 久操av在线| 亚洲 欧美日韩 另类| 日韩av情韩国爱禁区av一区二区| 久久肏大逼| 男人天堂无码| 激情综合五月| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 婷婷深爱五月| 不卡视频一区蜜桃视频| 久久精品免费| 亚洲无码超碰免费| 欧美色图 人妻| 99久久精品无码一区二区| 伊人少妇久久久| 一区在线观看中文字幕| 亚洲丝袜少妇在线| 亚洲。日韩。欧美| 精品人妻1区| 狠狠爱AV| 3571色综合一区二区二区| 69精品| 青青草精品| 99国产精品视频尤物| 天天干夜夜肏| 激情五月婷| 国产高清午夜成人在线观看| 一本久久精品中文字| 91呆哥人妻| 天天噜| 国产精品网站www| 日韩一级成人毛片免费观看| 久久久啊啊啊| 欧美大香蕉97| 国模精品娜娜一二三区| 天天干人人看综合| 日韩久草| 国产剧情一区在线观看| 久久精品久久久久久久久| 免费草草草草草视频| 五月色丁香| 97爱爱| 男女性扦B| 中文字幕在线观看丝袜| 久久久久亚洲AV无码专区少妇| 97中文字幕一区| 欧美熟妇乱码在线一区| 欧亚在线视频| 午夜乱轮操逼视频免费看| 尤物AV免费网站| 久久综合日韩亚洲欧美| 黑人精品成人一区二区三区 | 欧美性爱精品七区| 老司机福利社视频在线观看| av操操不卡| 五月天婷精品激情| 日韩字幕一区| 91N综合网| 91人妻尻屄视频| renqi久久久久久久久久久久| 一二三四视频中文字幕在线看| 超碰人妻久久| 亚洲成成熟女人综合一区二区| 亚洲欧洲日本精品中文a∨| 精品欧美乱码久| 日欧毛片久久| 精品国产Av无码久久久亚洲| 女人爽到高潮潮喷18禁网站| 国产91福利小视频在线观看| 97精品人妻一二三四| 夜夜嗨AV蜜臀av| 极品白嫩美女白浆成人福利在线看| 亚洲无992tv| 情色大香蕉| 天天摸天天舔天天操| 亚洲天堂色图| 五月婷婷啪啪| 久精品无码av一区二免费国产在线观看| 中文一区二区三区影院| 骚货操死你| 亚州色阁| 大香蕉一人在线| 亚洲欧美一区二区三区在钱蜜桃| 久久婷色| 日本欧美亚洲高清在线看| 国产探花日韩援交| 成人羞羞视频国产| 亚洲色图欧洲| 久久嫩草| 欧美亚洲手机在线| 91性网| 久草线上视频免费看| 久久鲁夜| 久久久久久久久九九久孕交| 99久久无色码| 97综合在线观看| 9久综合网| 五月婷婷综合在线| 超碰碰碰碰| 99re久久| 国产激情久久| 男人兔费天堂| 天美国产精品| 精品国产少妇高潮视频| 久久麻豆一区二区| 色色热| 25国产精品免费观看| 9999久久久久| 射 色综合| 夜夜中出国产| 国产夜夜艹| 97人人爱人人做人人乐| 好好的日:com久久九九| 九九九九九用不成了| 久久超碰大香蕉| 日韩美女,国产传媒,视频一区| 美女91在线观看| 粉嫩AV一区夜夜嗨| 久久人人爽av亚洲精品天堂桃色| 久久精品高清无码一区| 丝袜加勒比| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 国产精品午夜福利| 日韩啪啪视频| 中国AAAAAA黄色片| 香蕉热人人精品| 在线a v| 玖玖玖玖精品国产剧情| 成年女人18级毛片毛片免费观看| 这里只有精品久久| 欧美一区二区情色| 加勒比海成人视频网| 呻吟 欧美 日本 中出| 天天色综合影视网| 啊啊啊好想要| 岛国在线免费视频| 自拍大香蕉乱插| 色播丁香| 97色欧州| 91插B网站| 久久久久久精| 精品少妇人妻av久久免费| 欧美麻豆成人同性GⅤ在线| 激情深爱五月天| 欧美一二三区四五区| 亚洲丝袜99| 麻豆精品.欧美精品.日韩精品.| 欧美成人一级麻豆| 日韩国产在线观看av| 婷婷久久综合久| 亚洲aw毛茸茸在线| 亚洲交换| 国产福利一区二| 日逼国产| 久久久久骚| 欧洲亚洲人人爽爽视频| 野狼福利社区| 日韩人妻播放| 亚洲国产欧美日韩人妻日中文| 久操在97| 国产久久久| 国产高清免费不卡av| 91狠狠综合久久久久久| 精品人妻一区二区乱码一区二区| 色九九久九九| 中日亚韩免费视频| 日韩人妻资源网| 九九九草| 丁香五六月啪啪| 国产激情视频在线观看| 大香蕉伊在线久草麻豆天堂故事| 96一区二区三区| 正在播放国产精品一区| 亚洲性爱高潮影院| 黑人粗大V S日韩女优视频| 成人国产视频在线观看| 色情五月丁香| 久久夜夜夜| 人人摸人人入| 久热99| 亚洲色图欧美色图制服诱惑| 国产精品点击进入在线影院高清| av资源在线观看少妇| 欧美日韩大陆黑人少妇99| 天天92av| 动漫爆乳3D奶水一区在线观看| 久久999久| 中文字幕99999| 曰韩av中文字幕专区| 91天天爱| 欧美日韩啪啪电影| 99青草| 超碰九区| a在线观看| 夜夜爽夜夜摸夜夜操免费视频| ,成人免费啪啪视频| 男人的天堂2018东京热啪啪啪| 久热这里| www黄片免费看com| 久色99999| 亚洲成aⅴ人片不卡无码| 99国产精品人妻人伦| 欧美日韩狠狠爱| 日韩久久激情精品| 色色青青久久| 日本成人电影资源网| 欧美夜色| 高潮毛片无遮挡高清免费| 成人日本精品九区| 精品国模无码| 日韩精品人妻系列无码天堂| 91丝袜在线观看| 欧美日韩m| 日韩无码一区二区三区| 精品一区二区三区蜜桃臀赵总| 日日爽熟女| 再深点灬舒服灬太大了好硬好爽| 超碰偷拍| 丁香六月婷婷| 97色综合中文网| 激情文学网伊人| 久久系列| 欧美综合97www| 男女啪啪网站免费视频| 九一亚洲国产免费| 国产亚洲深夜激情| 久久伊人青青草| av绯色| 麻豆a'v电影| 91麻豆va国产精品| 麻豆精品.欧美精品.日韩精品.| 激情婷婷| 久久夜夜| 久久久久9999妇女| 福利伊人玖玖国产| 超碰天天去日穴| 欧美一级三级| 欧美高清无码免费视频高清版| 天天舔九色婷婷| 激情国产乱伦Av| 人妻喷水| 盗摄 精品 另类 一区| 91香蕉国产尤物视频| 亚洲、日韩、综合、另类| 国内精品久久人妻性色av| 中文字幕文字幕无码一区二区三区电影99 | 强免费黄色网址| 老熟乱一区二区三区四区| 日韩精品区二区三区不卡| WWW.操逼.COM| 天天超级碰碰碰| 色情五月综合婷婷| WWW.操逼.COM| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 久久精品人体| 操逼天美3区| 日本 情色 1区2区3区| 婷婷丁香五月综合| 99久久久久久亚洲精品不卡| 嗯嗯啊啊日韩精品| 嗯嗯啊在线视频| 高清无码一区二区三区| www久久精品| 亚洲另类久操网| 国产亚洲女v在线观看| 中国熟妇| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 老女人碰碰在线碰碰视频| 丁香五月激情综合国产| 亚洲精品97| 人妻素股| 九月丁香婷婷| 免费强奸av| 国产强奸无码乱伦| 色悠久久久av| 午夜精品99久久久久传媒| 天天弄天天操| 不卡在线观看视频| 青青草玖玖爱| 久久久999网站| 人妻在线视频| 妇女性内射冈站HDWWWCOM| 亚洲天堂一二| 欧美视频激情久久久久久| 五月激情影院| 日韩一区二区高清在线观看的| 久久久久久性爱免费视频| 黄色十八禁| 91逼逼女人91| 五月婷丁香| 国产精品无码av嫩草| 97超碰超碰| 青青青草原| 无码视频一区二区| 国产亚洲人妻综合日韩 久久| 美国一区二区三区视频| 天美传媒婬乱| 天天肏夜夜肏| 超碰97导航| 18岁禁 茉莉成人久久| 五月丁香久久| av天堂手机版追回| 岛国视频一二三区| 国产无码三级视频在线观看| 国产又粗又长视频| 久久久少妇诱惑精品视频| 夜夜国产一区| a男人的天堂| 小少妇| 国产成人在线观看综合| 无套内射人妻在线播放| 亚洲国产美女久久久久| 超碰97男女| www.acm成人黄色毛片| 欲香欲色天天天综合和网| 天天操天天射青青草| www.久久| 色播综合| 天天插天天操| 在线观看黄色电话| 亚洲国产麻豆一区二区三区| 熟妇的味道HD中文字幕| 亚洲欧美色图小说| 一区二区三区美女超清| 九九九九热| 久久久久久久97| 久久久91| 蜜臀久久99精品久久久久久| 天天夜夜rb| 亚州欧美在线| 日本 情色 1区| 96一区二区三区| 天天综合91入口| 午夜亚洲| 一区二区三区麻豆| 色色九区| 激情在线青青操| 精人妻一区二区三区| 中文字幕熟女人妻丝袜丝| 欧美日韩97在线| 妇女乱色二区| 一卡二卡在线播放| 青娱乐黄色录像| 亚洲色阁| 日韩免费a级毛片无码a∨| TS人妖另类精品视频系列| 久久久亚洲| 大象AV在线| 岛国免费视频在线| 亚洲欧美在线观看无码| 国产A v无码专区| A 天堂在线观看视频| 欧美视频中文字幕区| 欧美日韩91| 欧美制服另类丝袜| 熟女中出视频| 精品国产久久乱码| 91天天综合在线观看| 精品人妻15区| 在线亚洲欧美| 啪啪啪东京| 特级丰满少妇一级AAAA爱毛片| 久久久精品成人国产| 92福利社视频| av操操不卡| 欧洲精品一二三在线| 日本久久久精品电影| 91第一页| 九九精品无码专区免费| 玖玖爱免费观看视频| 五月丁香| 女人一区| 天天综合站| 天天伊人| 国产日逼视频| 国产亚洲国产超碰| 女人妻一区| 欧洲亚洲人人爽爽视频| 国产sv美女内射| 强奸乱伦AV一天堂网| 无码高清专| 蜜桃色色网站视频三区| 91黑丝美女| aV中文麻| 一级婬片120分钟试看| 亚洲最大AV网| 天天操女人| 美女91色黄18| 亚洲欧美天堂| 久操视频资源站公开| 国产免费一区二区三区最新不卡| 国产五码丝袜屁眼| 无码二级三级| 蜜乳AV.COM| 99激情| 中文字幕人乱码中文字的预防方法 | 91bbb| 国产AV毛片| 97色冈| 很狠操| 色综合一本| 久久性爱城| 欧美老妇女内射网址| 天堂亚洲精品| 尤物视频一区| 性色一线| 日韩青久久| 超清福利精品视频在线| 婷婷五月天网| 在线观看午夜婷婷久久久久清性观看| 天天噜| 国产做?爰片久久毛片?片美国| 97香蕉人人乳| 免费视频97| 日本一区二区成人在线| 91最新综合| 超碰地址久久| 精品v日韩欧美国产| 亚洲综合性感在线| 蜜臀AV午夜精品久| 久久精视频美日韩在线视频| 天天天乱色综合全| 天天噜| 超碰在线国产| 91男同| 日韩欧美大力操| 91 国产丝袜在线放观看| 黄色工厂这里只有精品| 国产午夜激片Av毛片不卡| 91精品成人| 国产激情视频一区区三区| 91Chinese在线| 天美一区在线| 国产高清精品一区二区三区毛片| 骚货人妻偷情自拍在线视频| 久区视频| 男人的天堂一区三区| 久久国语| 特级特黄一级毛片免费| 日韩一级二级在线| 天美传媒精品一区二区| 婷婷久久综合| 日韩欧美麻豆| 立川理惠无码一区二区| 欧美一区二区三区成人性生活| 超碰国产精品无码| 国产又大又粗又长视频在线| 欧美精品三级黄片| 天天综合日韩网| 青草精品视频日本久久久久网站在线| 亚洲免费看片| 欧亚 另类 久| 超碰在线国产| 久久久青青草| 婷婷色综合| 亚洲欧美97√| 久久久久久久人妻| 97天天| 精品久久久无码| 92一区二区| 色综合98| 亚洲无线观看久久| 射丝袜高跟鞋99| 欧美操人视频| 亚洲第一色页夜| 国产午夜在线观看视频| 无码视频一区二区| 久操凹凸视频| 国产日韩欧美| 欧美麻豆成人同性GⅤ在线| 女同性恋中文字幕| 91九色首页| 九七色图| 午夜呻吟欧美| 色翁荡息又大又硬又粗又爽| 久久久久网站-538在线视频-欧美永久乱码| 久久性爱精品一区| 色天欧美| 欧洲熟妇xxXx欧美老妇裸体 | www.亚洲成人一区| 极品后入免费视频| 国产乱码精品一区二区三区四川| 亚洲综合另类色图| 久久乐| 精品蜜乳AV免费观看| 美女91在线观看| 18禁网站在线播放| 天天干夜夜| 丁香五月成人| 日韩av性爱在线播放| 美女AV一区二区| 国产精品自在自拍视频| 欧美宗合网| 91偷拍欧美亚洲| 岛国在线一区二区三区| 欧美色图99| 99青草| 成人性爱av.com| 91天美免费| 夜夜高潮夜夜爽高清视频一 | 日韩78m视频| 黄色av一区二区在线| 天天亚洲| 久久久久久久国产| 国产成人久久久精品免费AV| 性色亚洲| 欧美亚洲国产日本在线,久久精品国产| 国产尹人在线视频免费| 色婷婷国产精品一区在线观看| 久久久性爱视频| 国产精品熟女乱伦| 男插女青青影院| 97欧美色综合| 天天综合在线4| 日韩Va亚洲va欧美Ⅴa久久| 欧美亚洲中文字幕| 97露脸精品丝袜| 人人扣人人操| 中文字幕高清精品一区| 91 亚欧| 一区二区首页| 女人高潮大叫一级毛片| 日本人妻伦在线中文字幕| 九九九久| 97久久精品亚洲中六字幕| 新版天堂中文资源8在线| 日韩无码人妻| 中日韩久久久免费看| 密臀在线免费观看| 日韩精品中文字幕二区| 精品国产Av无码久久久亚洲| 欧美淫乱视频| 神马久久久久久久久久| 五月天综合| 少妇3P性爱自拍| 97操| 亚洲狠狠入| 330dv亚洲成年视频网| 91xingse| 日本污ww视频网站| 天天色,天天干,天天干| 欧美男人天堂| 91丝袜人妻| 曰本91情色| 午夜呻吟欧美| 欧美激情综合色综合啪啪五月| 精品人妻av在线播放| 成人五月天丁香激情综合| 99热这里只有精品1| 日本淫穴在线| 亚洲男人天堂网久久| 啪啪综合网| 亚洲综合中文字幕有码| 家庭乱伦国产| 亚欧高清| 久操97| 综合亚洲欧美| 欧美亚洲色的图| 国产一区二区久久| 草蕉影视亚洲无码| 操人妻丝袜高跟| 五月丁香啪啪| 激情专区综合| 人人操人人摸人 | 天天干人妇| 国产一级137片内射麻豆| 亚洲无码com| 91高潮| 亚洲熟女人妻中文字幕一区二区| 99日视频在线免费| 色臀aV| 亚洲凸凹超碰成人| 丝袜视频一区二区在线播放国产中文| 熟女日韩| 国产精品一区人妻精品阁在线| 99热91| 婷婷五月天福利| 欧美国产日韩高清在线| www网站黄| 91天堂色男人的天堂| 脫衣舞一区二区三区| 家庭乱伦国产| 又大又长又粗又爽又黄| 国产亚洲欧美每日在线| 久久精品 六十路 熟女 欧美| 日韩免费a级毛片无码a∨| 91视频综合网| 日韩一级二级三级免费看完整版| 亚洲欧美日韩激情不卡| 欧洲精品一级二级精品综合视频综合| 亚洲高清欧美总合| 超碰色97| 一区二区不卡视| 色婷婷国产精品一区在线观看| 免费在线看黄片av| 97免费视频在线观看| 精品欧美老熟女一二区| 日本孕妇一区二区视频操逼免费看 | 一区二区三区精品久久| 日韩性爱再线视频| 岛国片在线观看视频亚洲| 91一起操| 夂久色| 97二区四区| 亚洲男人的天堂AV| 青青草成人视频在线观看二区| 亚洲黄色网址| 欧美亚洲韩国视频十五区| 亚洲欧美内射| 97 色综合| 日产欧美电影一区二区三区| 色在线综合| 国产精品欧美日韩久久| 亚洲最大网站av| 五月色网| 国产日本熟女顶级一区二区三区视频| 九一亚洲国产免费| 性老妇一区二区三区| 精品乱码在线观看| 9 1果冻精品视频| 九九九九精品| 日韩欧美大力操| 欧美疯狂做爰xxxx| 91oumei| 久操 高清| 另类老少妇| 国产深喉视频一区二区| 亚洲97成人在线观看| 激情综合二| 水澄无码AV| 91国产大片| 欧美色图自拍| 国产精品九九九| 精品国产无码中文| 探花精品视频| 少妇被玩视频二三区| 校园春色中文字幕AV| 玖玖爱视频网站| 国产91亚洲精品一区二区三区| 一级黄色性爱A级片| 色玖玖| 日本不卡二三区| 四虎AV在线播放| 亚洲av无码国产精品字幕| 干婷婷综合网| 91 丝袜在线| 麻豆黄站| 国产在线视频午夜精华在| 美中日韩无码| 翘臀vidoes| 九草九九九| 99人妻碰碰碰久久久久禁片| 黄色小视频日本txt| 欧美性爱97超碰| 欧美熟女逼久久久久久| 人人摸人人入| 一区二区三区精品视频| 麻豆区99999| 日韩BBN| 強姦亂倫a| 国产毛片精品一区二区色欲黄A片| 99re只有精品| 四虎在线视频| 日韩 欧美 视频 在线 一区| 99热综合在线| 男人的天堂三级| 老外又粗又长一晚做五次| 色情五月婷婷| 久草在| 性综合网| 99日韩| 超碰在97| 天天影视色香欲综合网小说| 五月色网| A一级色女| 秋霞一级鲁丝片A片| 国产激情久久| 后入福利视频| 99久久精品欧美国产| 亚洲天堂综合AV| 蜜臀va69| 国产专区第一页| 色五月69夫妻| 丰满人妻一区二区三区四区| 久久精品国产亚洲AV片多多| 精品九九九九九九九| 淫荡网址| 天天插天天射| 欧美特黄视频网站| 插穴性爱视频在线观看| 色眯眯射| 欧美成人一级麻豆| 蜜臀av一区二区三区免费观看| 久久9精品网站| AV不卡在线| 久婷婷一区| 久久久久亚洲熟妇熟女| 日本三级久| 91欧美经典| 国产 丝袜 欧美中文 另类| 中文字幕第23区| 91深夜夜| 91中文精品日韩欧美在线| 99久久精品国产系列| 大奶啊啊好爽| 天天干嫩逼网| 99热这里只有精品9| 人人妻人人爽人人精品| 欧美成人午夜免费福利785|