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

ARTICLE DETAIL

資訊詳情

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

SpringBoot+Vue3項目管理系統(tǒng)源碼解析:從庫表設(shè)計到前后端聯(lián)調(diào)

SpringBoot+Vue3項目管理系統(tǒng)源碼解析:從庫表設(shè)計到前后端聯(lián)調(diào) 手頭正好有一套從需求梳理到落地的企業(yè)項目管理系統(tǒng)源碼技術(shù)棧是 Java SpringBoot Vue3 MyBatis MySQL前端分離得挺干凈拿來改吧改吧就能復(fù)用。企業(yè)項目管理系統(tǒng)這個題目聽著大實際拆開無非就是“項目立項、任務(wù)拆解、進度跟蹤、成員協(xié)作、工時統(tǒng)計”這幾件事的數(shù)字化。這套系統(tǒng)解決的核心問題是讓項目狀態(tài)不再靠打聽而是靠數(shù)據(jù)說話讓任務(wù)分配不再靠口頭而是靠流程閉環(huán)。如果你正準(zhǔn)備做畢設(shè)、給公司內(nèi)部搭一套項目管理后臺或者想找一份能看懂、能改、能上線的前后端分離源碼作為學(xué)習(xí)樣板這篇內(nèi)容能直接給你一條相對完整的路。我寫這篇文章不打算只貼一段演示代碼而是想把從庫表設(shè)計到安全認證、從前端路由到接口聯(lián)調(diào)過程中那些容易翻車的環(huán)節(jié)都攤開講。這套東西拿來學(xué)習(xí)也好、二次開發(fā)也好核心價值在于它是典型的“業(yè)務(wù)系統(tǒng)標(biāo)準(zhǔn)形態(tài)”——有用戶權(quán)限、有CRUD、有狀態(tài)流轉(zhuǎn)、有統(tǒng)計報表覆蓋了Java后端開發(fā)面試?yán)锔哳l出現(xiàn)的場景。讀懂了這套項目SpringBoot的自動裝配、MyBatis的Mapper機制、Vue3的組合式API、Pinia的狀態(tài)管理基本都能串起來。1. 項目定位與技術(shù)選型思路1.1 企業(yè)項目管理系統(tǒng)到底管什么很多剛接觸項目的人一上來就問“系統(tǒng)有哪些功能”但在我看先想清楚“系統(tǒng)要解決誰的什么痛點”更重要。企業(yè)項目管理系統(tǒng)的使用者通常有三類人項目經(jīng)理要分任務(wù)、盯進度、匯總風(fēng)險普通成員要查看自己的待辦、提交進度、反饋阻塞管理層要看到人力和項目進展的全局視圖。由此推導(dǎo)出的功能邊界就相對清晰項目檔案、項目成員、任務(wù)分解、任務(wù)狀態(tài)流轉(zhuǎn)、工時填報、項目看板、消息提醒。這套源碼在這塊做得比較克制沒有硬塞一堆華而不實的圖表插件而是圍繞“任務(wù)流轉(zhuǎn)”這個主線把項目的生命周期管起來。一個項目從“立項”開始經(jīng)過“進行中”、“暫緩”、“完成”幾個階段每個階段背后都有對應(yīng)的任務(wù)狀態(tài)數(shù)據(jù)支撐。項目維度有基礎(chǔ)字段任務(wù)維度有優(yōu)先級、指派、截止時間、實際工時成員維度有角色區(qū)分。整個系統(tǒng)跑起來之后項目干系人看到的不是Excel里亂糟糟的表格而是統(tǒng)一入口的數(shù)據(jù)面板。1.2 為什么是SpringBootVue3MyBatisMySQL這套組合技術(shù)選型這件事很多新人喜歡追新一上來就引入微服務(wù)、引入各種中間件結(jié)果項目還沒跑起來先被概念淹沒。這套系統(tǒng)選SpringBoot首先是生態(tài)成熟市面上的Java面試題、企業(yè)后端崗位要求幾乎都圍繞SpringBoot展開用它做后端底座無論是找人維護還是自我學(xué)習(xí)資料都足夠多。Vue3做前端相比Vue2最大的變化是組合式API和更好的TypeScript支持后臺管理系統(tǒng)的場景里Vue3配合Element Plus這類組件庫做表格、表單、彈窗、權(quán)限控制的速度非??臁yBatis做持久層理由更直接企業(yè)項目里的SQL往往需要精細控制特別是多表聯(lián)查和動態(tài)條件篩選MyBatis的XML映射給了開發(fā)者足夠的主動權(quán)。MySQL則是成本和技術(shù)門檻的雙重考慮中小型企業(yè)的數(shù)據(jù)量級下它完全夠用部署、備份、運維的文檔也是一抓一大把。這套組合沒有用Redis做緩存、沒有上RabbitMQ做消息隊列并不是說那些技術(shù)不重要而是項目的復(fù)雜度還沒有到需要它們支撐的階段。真正的業(yè)務(wù)系統(tǒng)開發(fā)永遠是根據(jù)復(fù)雜度選型而不是根據(jù)技術(shù)潮流選型。加上Redis和MQ的工作量會讓一個本該聚焦業(yè)務(wù)邏輯的項目變得難以收尾。2. 數(shù)據(jù)庫設(shè)計與 MyBatis 映射2.1 核心表結(jié)構(gòu)怎么劃分?jǐn)?shù)據(jù)庫設(shè)計決定了業(yè)務(wù)邏輯的上限這絕對不是一句空話。這套系統(tǒng)的表結(jié)構(gòu)圍繞“組織-用戶-項目-任務(wù)”四條主線展開角色權(quán)限相關(guān)表放到獨立的模塊里避免業(yè)務(wù)表和權(quán)限表混在一起。sys_user存用戶基本信息sys_role和sys_menu管角色與菜單權(quán)限user_role做關(guān)聯(lián)這三張表支撐了前端的動態(tài)菜單和接口鑒權(quán)。業(yè)務(wù)表這邊project表記錄項目名稱、編號、開始結(jié)束時間、項目狀態(tài)、負責(zé)人。project_member表記錄項目成員和成員在項目內(nèi)的角色這張表承擔(dān)的是“項目資源”的概念成員加入項目之后才能被指派任務(wù)。task表是核心中的核心承接項目ID、任務(wù)名稱、指派人ID、創(chuàng)建人ID、優(yōu)先級、狀態(tài)、計劃開始時間、計劃結(jié)束時間、實際工時。工時記錄單獨拆成task_work_log表每條記錄對應(yīng)任務(wù)ID和填寫人ID這樣后端的統(tǒng)計報表才有數(shù)據(jù)基礎(chǔ)。我見過很多項目把附件、評論、日志全部塞進task表這是典型的反模式。一旦任務(wù)表字段過多索引失效、查詢變慢、代碼里各種if判斷問題都會集中爆發(fā)。這套源碼把日志、評論、工時分別拆表是符合企業(yè)系統(tǒng)常規(guī)做法的。2.2 關(guān)鍵聯(lián)表查詢與分頁實現(xiàn)項目管理系統(tǒng)里最典型的查詢是“任務(wù)列表頁”它需要根據(jù)當(dāng)前用戶的角色和項目篩選條件查出任務(wù)列表同時關(guān)聯(lián)用戶名和項目名。用MyBatis寫這類查詢重點在于動態(tài)SQL的組裝。如果直接把所有條件拼在XML里條件多的時候SQL會非常臃腫。合理的做法是在Mapper接口里定義一個復(fù)合查詢對象包含任務(wù)實體、分頁參數(shù)、篩選條件集合然后用where標(biāo)簽自動過濾空條件。分頁這里用的PageHelper接入成本很低。在pom.xml引入pagehelper-spring-boot-starter然后配置一個攔截器插件業(yè)務(wù)代碼里只需要在查詢前調(diào)用PageHelper.startPage(pageNum, pageSize)后續(xù)的第一次Mapper查詢會自動帶上LIMIT語句。需要注意一個大坑PageHelper只能作用于緊跟它之后的第一條查詢語句如果查詢前做了其他Mapper操作分頁就會失效。這是我調(diào)試時踩過的很實際的坑。MyBatis的XML映射文件里resultMap用來解決數(shù)據(jù)庫字段名和Java實體屬性名不一致的問題。當(dāng)前很多團隊喜歡把數(shù)據(jù)庫字段直接寫成下劃線風(fēng)格如project_name而Java屬性用的是駝峰風(fēng)格如projectName。最省事的辦法是打開SpringBoot配置項map-underscore-to-camel-case: true讓它自動轉(zhuǎn)換。但遇到多表聯(lián)查時重復(fù)字段名會繞過自動映射比如查詢?nèi)蝿?wù)關(guān)聯(lián)了項目名和用戶名兩個結(jié)果集里都有name字段這時候就必須用resultMap和別名手動指定。2.3 MyBatis緩存機制MyBatis的緩存分成一級緩存和二級緩存。一級緩存默認開啟作用范圍是同一個SqlSession在SpringBoot集成環(huán)境下SqlSession跟著事務(wù)走事務(wù)結(jié)束緩存就清空所以它對業(yè)務(wù)的影響通常感覺不明顯。二級緩存默認關(guān)閉配置開啟后每個Mapper命名空間內(nèi)的查詢結(jié)果會被緩存適合那些“讀多寫少且對實時性要求低”的數(shù)據(jù)。但注意一旦開啟二級緩存這個命名空間下的增刪改操作會觸發(fā)緩存刷新如果多表聯(lián)查時緩存了包含關(guān)聯(lián)數(shù)據(jù)的對象其他表更新就可能帶來數(shù)據(jù)不一致。我在實際項目里除非是字典表這類極穩(wěn)定的數(shù)據(jù)否則不建議輕易開啟二級緩存。面試題里經(jīng)常問MyBatis的一級緩存會不會出現(xiàn)臟讀答案是如果兩個不同事務(wù)的SqlSession操作同一數(shù)據(jù)一級緩存隔離在各會話內(nèi)部不會互相污染。但如果用了二級緩存又沒有做好刷新策略臟讀的概率就會明顯上升。這套系統(tǒng)源碼也是按這個思路處理基礎(chǔ)數(shù)據(jù)表啟用二級緩存核心業(yè)務(wù)表不啟用。3. SpringBoot 后端落地實踐3.1 工程結(jié)構(gòu)怎么搭才不亂包結(jié)構(gòu)這事很多小伙伴上來就按controller、service、mapper這樣的技術(shù)分層去建包結(jié)果項目一旦變大找某個業(yè)務(wù)功能的代碼要跨好幾個包非常難受。這套源碼采用的是“按業(yè)務(wù)域分包內(nèi)部再按技術(shù)角色分層”的方式。比如project包下面有ProjectController、ProjectService、ProjectServiceImpl、ProjectMapper、ProjectMapper.xml、entity包下的Project.java、dto包下的ProjectQueryDTO。這樣做的好處是業(yè)務(wù)內(nèi)聚一個業(yè)務(wù)域的修改不會牽扯到其他業(yè)務(wù)域的代碼結(jié)構(gòu)。SpringBoot工程的基礎(chǔ)配置核心在application.yml。數(shù)據(jù)源、MyBatis配置、日志級別都在這一份文件里看得到。端口、數(shù)據(jù)庫名、密碼這些可以放到application-dev.yml和application-prod.yml里做環(huán)境隔離。真正要注意的是密碼和敏感配置不能硬編碼構(gòu)建打包時用環(huán)境變量的方式把數(shù)據(jù)庫地址和賬號密碼注入進來避免把生產(chǎn)庫密碼提交到Git倉庫里。3.2 基于 JWT 的登錄認證與角色權(quán)限企業(yè)項目管理系統(tǒng)的后臺權(quán)限設(shè)計是剛需。這套源碼用的方案是JWT SpringBoot攔截器的方式登錄成功后生成一個Token前端放入請求頭攜帶后端攔截器校驗有效性。JWT相比Session方案的好處在于服務(wù)端無需存儲登錄狀態(tài)天然適配前后端分離和后續(xù)多實例部署的場景。Token生成時我會把用戶ID、用戶名、角色編碼這些非敏感信息放進Claims里但絕不把密碼放進去。攔截器主要驗證Token的簽名和過期時間解析出來的用戶ID放進ThreadLocal或Request attribute里供后續(xù)業(yè)務(wù)方法直接獲取當(dāng)前用戶。這里有個實際經(jīng)驗每次請求都查一次數(shù)據(jù)庫拿完整用戶信息會很耗性能所以Token里的用戶基礎(chǔ)信息要夠用真正的用戶權(quán)限可以在登錄后一次性加載到前端由前端控制菜單和按鈕顯隱。權(quán)限的精細控制放在接口層面是更安全的做法。后端不僅要在攔截器里校驗是否登錄還要在Controller方法上通過自定義注解校驗角色權(quán)限。比如項目經(jīng)理才能操作“創(chuàng)建項目”普通成員只能查看。攔截順序是登錄校驗 - 權(quán)限校驗 - 業(yè)務(wù)處理。這套邏輯跟Spring Security很像但用注解加攔截器實現(xiàn)邏輯透明適合中小規(guī)模項目也方便面試時講清楚你的完整思考鏈路。3.3 核心業(yè)務(wù)接口的設(shè)計套路任務(wù)狀態(tài)流轉(zhuǎn)這個接口是系統(tǒng)中最容易出問題的點。很多人會把狀態(tài)流轉(zhuǎn)寫成一坨if-else看起來能跑但每加一個狀態(tài)就要改一次代碼。合理的做法是定義狀態(tài)枚舉每個枚舉里定義允許的下游狀態(tài)集合狀態(tài)流轉(zhuǎn)方法統(tǒng)一做校驗。比如任務(wù)狀態(tài)包括“待處理 - 進行中 - 已完成/已駁回”一個駁回操作會回到待處理一個完成操作會記錄完成時間。這套設(shè)計模式保證了狀態(tài)機的可維護性也是很多后端崗位面試的加分點。工時填報的邏輯也需要細致處理。任務(wù)工時如果允許反復(fù)修改會造成統(tǒng)計報表的數(shù)據(jù)不可信。實際做法是記錄每一次工時填報的操作人、操作時間、變更前后工時形成一條操作日志而不是直接覆蓋原記錄。這樣項目經(jīng)理在查看人力報表時能追溯是哪個人在哪個時間點改了工時避免扯皮。這套源碼里對應(yīng)的就是task_work_log表的設(shè)計邏輯。新增、修改、刪除這類基本接口核心是校驗邏輯放在哪的問題。我個人的實踐是參數(shù)基礎(chǔ)校驗用注解放在Controller比如NotBlank、NotNull業(yè)務(wù)語義校驗必須放在Service層比如“任務(wù)不屬于當(dāng)前項目”、“項目狀態(tài)不允許刪除”。因為Controller層注解偏簡單而格式正確不代表業(yè)務(wù)合法兩層校驗各司其職。4. Vue3 前端實現(xiàn)要點4.1 項目初始化和目錄結(jié)構(gòu)前端這塊源碼基于Vite構(gòu)建的Vue3工程相比WebpackVite的開發(fā)服務(wù)器啟動速度有質(zhì)的提升改代碼熱更新基本是毫秒級。工程里用了Element Plus做UI組件庫配合Vue Router做路由Pinia做全局狀態(tài)。目錄結(jié)構(gòu)上src/api下按業(yè)務(wù)域拆分的接口請求文件src/views下是頁面組件src/router下是路由配置src/store下是Pinia模塊src/utils下是工具函數(shù)和請求封裝。Vue3學(xué)習(xí)過程中最讓人頭疼的是組合式API和選項式API的區(qū)別。這套源碼用的是組合式APIsetup語法糖寫法更接近函數(shù)式組織邏輯。一個頁面組件里按“響應(yīng)式數(shù)據(jù) - 計算屬性 - 生命周期請求 - 方法”的順序組織代碼。如果某個頁面的邏輯特別重甚至可以抽出成獨立的composables函數(shù)比如useTaskList()這在后臺系統(tǒng)開發(fā)里能顯著提高代碼復(fù)用率。創(chuàng)建Vue3項目的命令很簡單npm create vitelatest project-name -- --template vue然后按需安裝vue-router、pinia、axios、element-plus。但真正做到可用級別還需要額外處理幾件事給Element Plus按需引入組件樣式、配置路徑別名指向src目錄、統(tǒng)一封裝全局的請求錯誤提示。這些都做好工程才能真正跑起來不報錯。4.2 Axios 請求封裝與跨域處理前后端分離的項目跨域是繞不開的問題。開發(fā)環(huán)境下前端跑在5173端口后端跑在8080端口瀏覽器的同源策略會攔截請求。常規(guī)解法是在Vite的server.proxy配置里把/api前綴的請求轉(zhuǎn)發(fā)給后端地址這樣前端發(fā)出的請求變成相對路徑瀏覽器層面沒有跨域問題后端也只需要允許本地代理訪問即可。生產(chǎn)環(huán)境部署則通常用Nginx做反向代理把前端靜態(tài)資源和后端接口統(tǒng)一掛在同一個域名下。Axios封裝的核心不在請求本身而在攔截器。請求攔截器里統(tǒng)一加上Token頭響應(yīng)攔截器里統(tǒng)一處理HTTP狀態(tài)碼和業(yè)務(wù)碼。比如登錄過期返回401時攔截器統(tǒng)一跳轉(zhuǎn)登錄頁并清除本地存儲的用戶信息避免每個頁面都寫一遍重復(fù)判斷。業(yè)務(wù)碼和HTTP狀態(tài)碼要區(qū)分開HTTP狀態(tài)碼代表傳輸層的成功或失敗業(yè)務(wù)碼代表業(yè)務(wù)層面的成功或失敗比如“密碼錯誤”“無操作權(quán)限”這兩個碼混淆會導(dǎo)致前端判斷邏輯非?;靵y。上傳文件的場景也是一樣普通的POST請求頭是application/json文件上傳必須使用multipart/form-dataAxios里直接用FormData對象傳輸不要手動設(shè)置Content-Type讓瀏覽器自動帶boundary邊界符。如果手動指定了錯誤的內(nèi)容類型后端接收文件時會解析失敗。4.3 動態(tài)路由、路由守衛(wèi)與 Pinia 狀態(tài)管理后臺管理系統(tǒng)的菜單應(yīng)該是跟著用戶權(quán)限走的。第一種方案是后端返回菜單列表前端動態(tài)注冊路由第二種方案是前端預(yù)先定義好全部路由再根據(jù)用戶權(quán)限過濾。兩種方案各有優(yōu)劣。這套源碼采用的是第二種因為前端把頁面組件全部寫好了動態(tài)注冊路由反而復(fù)雜過濾方案更容易實現(xiàn)。根據(jù)用戶角色返回的權(quán)限標(biāo)識去控制菜單顯隱復(fù)雜度低且不容易出錯。路由守衛(wèi)使用Vue Router的beforeEach每次跳轉(zhuǎn)前判斷用戶是否已經(jīng)登錄、頁面是否需要權(quán)限。沒有登錄的強制跳轉(zhuǎn)到登錄頁已登錄但訪問無權(quán)限頁面時重定向到403或者提示頁。這里有一個很容易踩的坑動態(tài)添加或過濾路由后如果router實例已經(jīng)生成了某個路由再去修改它不會生效。所以路由表先定義一個基礎(chǔ)白名單所有帶權(quán)限的路由統(tǒng)一在登錄后生成。Pinia管理全局狀態(tài)的重點是保持響應(yīng)式。用戶信息、項目當(dāng)前篩選條件、全局的消息未讀數(shù)這些跨頁面共享的數(shù)據(jù)放進Pinia其他狀態(tài)盡量保持頁面內(nèi)局部。store模塊里注意避免直接改后端返回的數(shù)據(jù)后端返回的對象應(yīng)該拷貝一份再修改否則在嚴(yán)格模式下會報狀態(tài)變更錯誤。在實際開發(fā)中保持“數(shù)據(jù)流單向”的思路會少遇到很多調(diào)試時理不清頭緒的問題。4.4 表單校驗與日期處理的細節(jié)Vue3后臺系統(tǒng)的表單校驗很多人忽略了對日期格式的校驗。項目管理系統(tǒng)里的任務(wù)截止日期如果用戶填了非法日期或早于今天的日期業(yè)務(wù)上是明顯不合理的。Element Plus的表單校驗規(guī)則里可以自定義validator比如“結(jié)束時間必須晚于開始時間”“截止時間不能早于當(dāng)前時間”。面試題里也經(jīng)常問到Vue3的表單rules校驗這個系統(tǒng)里給了比較完整的示例。日期選擇器默認返回的是Date對象或字符串這取決于value-format的設(shè)置。提交給后端前建議統(tǒng)一格式化為yyyy-MM-dd HH:mm:ss的字符串。這里有個細節(jié)如果前端傳的是帶時區(qū)的ISO字符串后端LocalDateTime解析時如果不加JsonFormat注解常見的表現(xiàn)是日期字段變成“2025-07-10T16:00:00.00000:00”這種格式前端展示時會出現(xiàn)8小時時差。這個問題在很多項目聯(lián)調(diào)階段都會出現(xiàn)最好的做法是全局配置Jackson的時間格式化而不是每個字段手動加注解。5. 前后端聯(lián)調(diào)與部署細節(jié)5.1 本地聯(lián)調(diào)的完整流程把前后端源碼拿到手本地跑通整體流程的順序很重要。第一步先準(zhǔn)備MySQL數(shù)據(jù)庫執(zhí)行項目提供的init.sql腳本初始化庫表結(jié)構(gòu)和基礎(chǔ)數(shù)據(jù)。第二步根據(jù)本機MySQL的地址、端口、賬號密碼修改后端application-dev.yml里的數(shù)據(jù)源配置。第三步啟動后端SpringBoot應(yīng)用確認控制臺沒有報錯能正常監(jiān)聽8080端口。第四步在前端工程根目錄執(zhí)行npm install安裝依賴再執(zhí)行npm run dev啟動開發(fā)服務(wù)器訪問Vite輸出的本地地址。聯(lián)調(diào)的重點是用一個完整業(yè)務(wù)場景打通鏈路。我的習(xí)慣是先登錄系統(tǒng)看Token能不能正常生成和寫入請求頭然后新建一個項目再給項目添加成員再創(chuàng)建任務(wù)給任務(wù)指派成員和填寫工時最后在列表頁看數(shù)據(jù)是否正常顯示。整個過程能走通說明數(shù)據(jù)庫、后端接口、前端路由、狀態(tài)管理基本都正常。如果這些核心流程不通排查的方向就應(yīng)該是數(shù)據(jù)庫腳本或者接口請求路徑。后端接口自測可以用Swagger或者Postman但為了聯(lián)調(diào)效率我更推薦在后端啟動后先用瀏覽器插件或Postman驗證接口返回。如果后端接口返回正常再定位前端問題如果后端本身返回就不對優(yōu)先看SQL語句和日志。日志級別調(diào)成DEBUGMyBatis會把執(zhí)行的SQL和參數(shù)都打印出來這是排查數(shù)據(jù)庫問題最直接的手段。排查完之后再調(diào)回INFO減少生產(chǎn)日志量。5.2 部署場景下的常見配置問題代碼本地跑通之后部署是另一回事。前端npm run build生成靜態(tài)文件Nginx配置root指向dist目錄location /api/反向代理到后端地址。后端打包成jar包用java -jar或systemd托管運行。這里最隱蔽的問題是前端靜態(tài)資源路徑。如果前端配置了base: /部署在域名根路徑是沒問題的但如果部署在二級目錄/admin下就必須改成base: /admin/否則JS和CSS資源會404。MySQL在生產(chǎn)環(huán)境的連接字符串要加上useSSLfalse和serverTimezoneAsia/Shanghai參數(shù)。不加時區(qū)參數(shù)可能出現(xiàn)日期錯亂沒有關(guān)閉SSL可能出現(xiàn)連接警告或失敗尤其在云數(shù)據(jù)庫或某些MySQL版本下。我遇到過數(shù)據(jù)庫連接反復(fù)超時的問題后臺看是默認連接池參數(shù)配置過小經(jīng)調(diào)整maximum-pool-size和connection-timeout參數(shù)后才穩(wěn)定。這些配置在本地開發(fā)時可能感知不強但部署到服務(wù)器上環(huán)境差異會把這些隱藏問題全部暴露出來。6. 常見問題排查與避坑建議6.1 啟動階段的典型報錯MySQL連接失敗這類問題占新手排查量的一半。首先確認MySQL服務(wù)是否啟動Linux下用systemctl status mysqld查看Windows下看服務(wù)列表。其次確認密碼是否寫對默認的root賬戶如果設(shè)置了密碼但配置里沒填就會報Access denied。最后確認端口3306被占用或改了端口配置也要跟著改。MyBatis XML文件找不到SpringBoot項目如果Mapper的XML文件放在src/main/java目錄下打包時不會自動拷貝到classes目錄。解決方案是在pom.xml的build里把src/main/resources和src/main/java下的xml文件都納入打包資源范圍。很多人本地IDE能跑但一打包部署就報Invalid bound statement幾乎都是因為這個。如果XML文件放在src/main/resources/mapper下然后在application.yml里配置mybatis.mapper-locations: classpath:mapper/*.xml80%的問題都能避免。接口返回404或405404通常是路徑寫錯前端請求的/api/project/list后端Controller映射的卻是/project/list前綴不一致。405則是請求方法不匹配前端用POST請求了后端只允許GET的接口。排查時先看后端控制臺有沒有請求日志再看返回的HTTP狀態(tài)碼這種問題五分鐘內(nèi)能定位。6.2 運行階段的緩存與性能問題MyBatis的二級緩存如果開啟到業(yè)務(wù)表上有一個典型的坑更新了A表但B表關(guān)聯(lián)查詢時用了緩存導(dǎo)致數(shù)據(jù)顯示舊內(nèi)容。實際表現(xiàn)是頁面數(shù)據(jù)改了刷新還是不變化。解決辦法是合理劃分緩存空間或者統(tǒng)一在寫操作時清理相關(guān)Mapper的緩存。這類問題排查起來慢最好在設(shè)計階段就避免。分頁性能這塊任務(wù)列表數(shù)據(jù)量上來之后PageHelper的COUNT查詢會額外消耗一定資源。如果業(yè)務(wù)允許可以關(guān)閉一些超大列表的總數(shù)統(tǒng)計直接“下一頁”的方式替代頁數(shù)跳轉(zhuǎn)。另外MySQL的LIMIT在深分頁時存在性能衰減比如第10萬條數(shù)據(jù)LIMIT 100000, 20的掃描行數(shù)會非常大。查到后面頁的數(shù)據(jù)變慢是預(yù)期行為可以配合WHERE id 某個值做游標(biāo)分頁來改善。數(shù)據(jù)庫索引設(shè)計也直接影響運行階段體驗。task表的查詢條件大概率圍繞project_id、assignee_id、status展開應(yīng)該建復(fù)合索引。但索引不是越多越好寫頻繁的表加太多索引會導(dǎo)致插入和更新變慢。這套系統(tǒng)源碼里只給查詢頻率高且區(qū)分度高的列建了索引這個度是值得體會的。6.3 體驗提升的一些經(jīng)驗實際項目中消息通知這個功能常常被當(dāng)成錦上添花但我見過很多系統(tǒng)的使用率下滑恰恰是因為成員不知道任務(wù)被指派給了自己。如果你的項目管理系統(tǒng)要做消息提醒優(yōu)先做站內(nèi)信和待辦角標(biāo)不要一上來就對接短信、郵件或者企業(yè)微信推送。站內(nèi)消息只需要一張消息表加一個定時輪詢接口改動成本低但對用戶體感提升非常明顯。另外就是日志系統(tǒng)雖然Java的日志框架能直接輸出到控制臺和文件但生產(chǎn)環(huán)境真正排查問題時file日志的級別、按天分割、日志清理策略都要提前設(shè)計。如果不做清理tomcat日志和項目日志能把磁盤塞滿這個坑在運維階段非常常見。7. 源碼閱讀與二次開發(fā)建議7.1 拿到源碼先看什么拿到一套陌生源碼最忌諱從Controller開始逐行讀。我的建議是先看數(shù)據(jù)庫的初始化腳本從表結(jié)構(gòu)反推業(yè)務(wù)模型。理解了表之間的關(guān)系再去讀實體類對應(yīng)的Mapper接口看SQL怎么寫。下一步看Controller層的路由和參數(shù)接收方式最后再看Service層。因為Service層往往是最厚的最后讀它反而能借助前面對SQL和路由的了解理解得更快。源碼里的通用模塊優(yōu)先讀比如統(tǒng)一返回結(jié)果類ResultT、全局異常處理器、PageResult分頁結(jié)構(gòu)、BaseController。這些是整套代碼的骨架和約定。如果團隊有自己的規(guī)范化約定后面開發(fā)新功能時不按這個約定來代碼風(fēng)格就會分裂。7.2 想往上加功能的時候怎么改假設(shè)需求是增加“項目周報”功能。數(shù)據(jù)層面可以復(fù)用現(xiàn)有表結(jié)構(gòu)再加一張project_report表關(guān)聯(lián)項目ID、上報周期、內(nèi)容、創(chuàng)建人。后端增加ReportController和對應(yīng)的Mapper前端在項目詳情頁加一個報告Tab標(biāo)簽復(fù)用現(xiàn)有表單和列表組件。這類功能的開發(fā)難度并不在于新增一張表和一個頁面而在于權(quán)限邊界是否想清楚誰有權(quán)限查看報告、誰有權(quán)限提交報告、項目結(jié)束后報告是否鎖定。沒想清楚這幾點功能上線就會持續(xù)產(chǎn)生需求迭代。如果你想在這個系統(tǒng)里加“甘特圖”或者“看板”強烈建議先查一下有沒有現(xiàn)成的Vue3組件庫不要重復(fù)造輪子。自己畫甘特圖的成本遠比預(yù)想的高從拖拽交互到時間縮放每一塊都是工作量。后臺系統(tǒng)的開發(fā)效率很大程度取決于組件選型非核心組件能站別人的肩膀就不要自己從零寫。7.3 學(xué)習(xí)這套源碼的高效路徑對于正在準(zhǔn)備Java后端面試的人這套源碼的價值尤其高。用它可以梳理清晰的回答鏈路SpringBoot如何啟動、MyBatis如何映射、PageHelper如何分頁、攔截器如何做登錄校驗、全局異常如何統(tǒng)一處理。這些幾乎是后端崗位面試題里最常出現(xiàn)的一批問題。更進階一點可以研究JWT的續(xù)期方案、用戶權(quán)限的動態(tài)刷新、局部刷新Token等擴展點。Vue3方面它覆蓋了組合式API、Pinia、Vue Router、Axios攔截器、動態(tài)菜單過濾這些后臺管理系統(tǒng)高頻場景對Vue3學(xué)習(xí)者和準(zhǔn)備Vue3面試的人都是不錯的案例庫。比如面試?yán)飭枴扒岸巳绾胃鶕?jù)后端返回的角色權(quán)限渲染菜單”這個源碼里的實現(xiàn)思路就可以直接用來回答。多說一句學(xué)習(xí)源碼和做自己的項目完全是兩件事。源碼是用來“解剖”的一個函數(shù)一個函數(shù)地拆理解設(shè)計意圖做項目是用來“打磨”的盡量用自己理解且可控的方案而不是抄一堆看不懂的魔法代碼。確保代碼的每一行都是自己掌握的后期交付才不會有隱患。8. 實操心得與避坑清單8.1 開發(fā)前后端分離系統(tǒng)的總體心態(tài)前后端分離項目開發(fā)時間久了最大的感受是接口約定必須先行。如果前后端各自按自己的想法定義字段名和返回結(jié)構(gòu)聯(lián)調(diào)階段一定會互相等待、反復(fù)溝通非常浪費時間。我的習(xí)慣是先定義一份簡單的接口文檔哪怕是Markdown格式的表格包含接口路徑、請求參數(shù)、返回結(jié)果示例、權(quán)限要求前后端照著它開發(fā)再配合Swagger做在線調(diào)試聯(lián)調(diào)體驗會好非常多。接口數(shù)據(jù)結(jié)構(gòu)盡量保持扁平減少不必要的嵌套。前端拿到一個嵌套三層的數(shù)據(jù)結(jié)構(gòu)展示和表單回填都會很痛苦。返回給前端的DTO字段名不要使用數(shù)據(jù)庫下劃線風(fēng)格統(tǒng)一轉(zhuǎn)成駝峰命名。框架層面的全局時間格式化、全局異常處理、統(tǒng)一返回格式這些約定哪怕辛苦一點也要在一開始定下來。后期的每個新功能都是復(fù)用這套約定省下來的時間會非??捎^。8.2 盤點一下我遇到過的坑第一次做這類系統(tǒng)時我踩過最耗時的坑是權(quán)限模塊。最初的實現(xiàn)只是在前端判斷角色顯示菜單后端接口完全沒做校驗結(jié)果團隊成員直接繞過前端調(diào)接口把不屬于自己的項目任務(wù)改掉了。后來花了很長時間給每個Controller方法補權(quán)限注解和攔截校驗。所以后端接口的權(quán)限驗證絕對不能省前端隱藏菜單只是用戶體驗層面的事情安全防線必須建立在后端。另外一個坑是刪除功能的物理刪除。項目管理系統(tǒng)的任務(wù)記錄、工時記錄都屬于審計敏感數(shù)據(jù)物理刪除之后無法追溯。正確做法是給表加一個deleted字段查詢時統(tǒng)一過濾刪除變成軟刪除。用戶看到的是“刪除成功”但數(shù)據(jù)還在庫里這為后續(xù)的審計恢復(fù)留了后路。企業(yè)管理系統(tǒng)和普通個人應(yīng)用不同數(shù)據(jù)完整性永遠是第一優(yōu)先級的。數(shù)據(jù)庫字段類型也曾讓我吃過教訓(xùn)。存儲工時時用double累計統(tǒng)計后可能出現(xiàn)浮點誤差存儲金額或精確數(shù)值時用decimal統(tǒng)一指定精度。同理狀態(tài)字段用枚舉值還是字符串在代碼里要保持一致別人改代碼時看到1和2不知道什么意思可維護性就會變差。合理的做法是狀態(tài)類字段在后端用枚舉常量持久化時才轉(zhuǎn)成數(shù)據(jù)庫對應(yīng)的數(shù)值。8.3 最后給幾個擴展方向如果這套系統(tǒng)之后要往真實生產(chǎn)級演進第一步應(yīng)該是引入Redis。用Redis存用戶的Token能夠?qū)崿F(xiàn)主動下線彌補JWT無法主動失效的缺陷緩存熱點字典數(shù)據(jù)減少數(shù)據(jù)庫查詢壓力。引入Redis的復(fù)雜度不高但帶來的架構(gòu)收益非常明顯。第二步是引入定時任務(wù)比如每天定時掃描即將到期的任務(wù)生成站內(nèi)提醒消息。SpringBoot自帶的Scheduled注解就能實現(xiàn)不需要額外引入XXL-Job除非你后續(xù)有分布式任務(wù)調(diào)度的需求。定時任務(wù)在業(yè)務(wù)系統(tǒng)里的價值往往被低估一個簡單的到期提醒就能顯著提升管理效果。第三步才是考慮微服務(wù)化。微服務(wù)引入的是服務(wù)發(fā)現(xiàn)、配置中心、鏈路追蹤、分布式事務(wù)等一系列復(fù)雜問題如果業(yè)務(wù)體量沒有達到幾千個并發(fā)或者多個獨立團隊協(xié)作單體應(yīng)用配合良好模塊劃分仍然是最佳選擇。把單體項目的模塊邊界畫清晰后續(xù)拆分成微服務(wù)也會順暢。個人經(jīng)驗是這類項目管理系統(tǒng)最值錢的資產(chǎn)不是代碼本身而是流程梳理和數(shù)據(jù)建模。前端頁面、后端接口都是可以快速替換的但表結(jié)構(gòu)一旦定了后續(xù)所有功能都會跟著長出來。想清楚業(yè)務(wù)規(guī)則代碼只是把這些規(guī)則翻譯成系統(tǒng)語言的過程而已。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲天天综合| www. 男人天堂成人在线| 中国AAAAAA黄色片| 亚洲日韩乱码中文无码蜜桃臀网站 | 国产一进一出视频网站| 羞涩视频| 欧美九九九| 欧美日韩少妇色情| 91成人国产综合久久精品蜜月| 日本性爱少妇| 欧美日韩国产中文精品字幕自在自线| 人人看人人插| 日韩欧洲操屄视频| 99re9| 久久亚码| 青青操少妇| 日本特黄f c2| 九九性爱网| 国内偷自视频区视频综合| 国产99999| 欧美高潮| 99热线麻豆| 久久天天躁日日躁狠狠躁 | 美女让帅哥通她小鸡鸡| 日韩情色AV| 国产精品一二三免费网站| 在线观看黄色电话| 狠狠色噜噜狠狠狠狠狠色综合久久| 精品国产Av无码久久久伦古装| 精品十八在线观看| 欧美,日韩,中文,另类| 伊人991| 99蜜桃臀亚洲成人在线观看| 亚州综合电影| 91精品人妻一区二区三区蜜桃臀| 国产久久一区二区三区野外在线| 91九久| 国产成人无码网站在线视频| 白嫩国模丰满一二三区| 欧美色色色| 91九色在线| 五月婷婷综合网| 色区久久| 人妻在线大香蕉| 欧美久久毛片基地| 蜜臀色乳| 日本二区不卡| 狠狠久久手机视频精品| 亚洲精品无码成人久久久99| 亚洲成人日韩小说| 男人兔费天堂| 色偷偷综合91久久噜噜| 97干在线视频| 青娱乐休闲视频在线观看| 欧美精品成人一区二区在线观看| 国产色产精品在线观看| 亚洲春色欧美激情自拍| xxxx网站亚洲精品| 黄网在线播放| 久久久久久久一级黄色打同平台| 亚洲91色在线| 久久偷偷色综合蜜桃| 2026国产精品视频| 99热精品在线观看| 免费一级精品啪啪视频| av日韩手机在线影视| 色婷婷网| 欧美激情超碰777| 91伊人大香蕉| 91九色丰满高潮| 四虎精品一区二区| 日本午夜福利影院| 白丝少妇一区二区| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 五月花婷婷| 超碰超碰95| 午夜精品久久久久久久99热影院 | 国产性爱乱伦AV| 国模精品娜娜一二三区| 亚洲欧洲小说图片视频 | 亚洲天堂AV在线播放| 亚洲 欧美日韩 另类| 翔田千里av一区二区三区| 亚洲中文字幕妇伦久久| 超碰在线综合97| 国产色图乱伦| 五月天婷婷小说| 色五月69夫妻| 天堂性色| 亚洲操逼视频网站| 久久香蕉国产线看观看亚洲女人 | 26uuu性| 七久久久| 日韩无码服务区| 51国产午夜精品视频| 国产92麻豆天美精品色欲5| 东京热激情视频一二三区 | 国内精品久久久久影院亚洲| 日韩 成人 有码| 三及片网站| 操逼无码一区| 日本不卡二三区| 狠狠爱综合网| 操九九九九九九| 亚洲狠狠入| 伊人精品久久网站| 欧美高潮在线| 超碰97人妻在线| 91人妻尻屄视频| 久久久不卡区一区二区三区久久久| 欧美熟妇精品黑人巨大91| 亚洲第一精品在线视频| 一区二区精品更新提醒| 神马久久久久久| 欧美视频边做饭边橾| 91超碰在线播放| 日韩一级性爱无码| 春色校园综合网| 美欧色综合| 五月色网| 亚洲情色 自拍| 欧美日综合| 久久大香蕉97| 综合婷婷| 伊人网青青| 激情终合网| 欧美高清18A片| 亚洲人精| 吖在线不卡一区二区国产剧情| 国产综合久久久鬼色| 欧美片第一页| 91五月天| 日韩av乱伦| 亚洲第二页| 五月丁香婷婷啪啪| 中文乱码字幕观看视频| 最新亚洲风情电影| 国产aⅴ无码片毛片一级网站| 亚洲永久AV无码精品秋霞| 成人无码在线视频网站| 高跟伊人julia ann| 91福利网在线观看| 亚洲精品1区| 国产一区二区欧美日本| 91精品人妻一品二品三品| 超碰九色| 乱性AV| 青草视频人妻在线观看| 99碰碰| 男人天堂网址| 91爱看| 久久精品色欧美aⅴ一区二区| 亚洲 无码 有码 中文字幕| 殴美大黄片| 男人天堂2019| 久久一留热品黄| 亚洲最新av无码成人精品区| 91精品在线播放| 色婷婷狠狠| 国产强奸AV在线| 欧美内射少妇| 国产呦精品一区二区三区下载| 天天操福利视频综合网站| 国产这里只有精品| 美女视频尤物网在线看| 91在线观看,天天综合| 欧美黄色图片| 激情开心五月天| 91P0RNY大屁股人妻| 啊啊啊啊在线播放| 欧美页片| 亚洲少妇喷视频看| 色狠狠 - 百度| 97碰碰色| 欲香欲色综合天天伊人| 99青青草国产视频| 夜夜嗨AV一区天天| 日韩不卡a级视频专区| 一区二区三区视频| 大香蕉手机在线| av72网| 精品女人999| 日韩丝袜二区| www.91色综合| 无码色| 九月丁香婷婷色| 翔田千里AV无码秘 三区| 清纯唯美综合亚洲| 亚洲日韩少妇一道本视频| 久久久不能久久久久| 日韩人妻免费精品| 天堂俺去俺来也www久久婷婷| 最新制服中文第一页| 亚洲日韩东京热一区| 欧美精品在线观看| 国产精品熟女AV中文字幕在线播放| 国产乱伦一二三区| 精品性爱一区二区| 黑人黄片在线免费观看| 免费又黄又裸乳的视频| 襙一襙| 男人天堂欧美| 野狼福利社区| 天久久久噜噜噜久久国产精品爽爽| 男人天堂无码| 风间由美日韩欧美久久| 高颜值美女口爆高潮浪叫| 色香综合天天影视综合 | 黄骗免费网站| 久久久9999| 欧美一二三| 上床啊啊啊| 超碰97人妻免费在线| 国语对白在线播放视频| 久久久久婷婷精品av电影| 天堂国产AV| 亚洲熟妇乱女区二区三区| 另类小说五月天| 激情av| 岛国成人av在线播放网址| 另类 日韩 熟女| 天天操天天干一区二区 | 婷婷五月天网| 啊啊啊啊二区好大| 中文字幕文字幕无码一区二区三区电影99| 色婷婷婷五月天激情四射| 人妻密肉在线观看| 大香蕉啪啪啪啪在线| 国产亚洲精品美女| 中文字幕第二页| 国内毛片四区| 性夜影院爽黄A爽免费动漫| 国产精品人妻无码久久久互動交流| 久久色网| 国产人伦a片信息免费片| 免费看黄视频亚洲网站| 欧美婷婷五月天| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 日韩性爱高清免费视频| 国产伊人自拍| 欧美在线视频播放| 麻豆尤物视频网| 国产AV中文| 两女互慰AV高潮喷水在线观看| 日韩有码一区三区| 裸模AV女优| julia ann久久| 欧美亚洲综合高清在线| 国产精品 久久久精品一牛| 日韩精品免费高清视频在线| 亚洲综合在线视频| 国产丰满熟夫69mpp| 老熟妇一区二区三区| 久久免费少妇| 天天日B夜夜干B时时操B| 大香樵伊人网| 九一精品牛牛一区二区| 亚洲日韩国产精品| 天天操天天舔| 天天综合网入口~91| 97伊人| 欧美伊人久久综合网| 8050无码八戒| 激情欧美日韩女同久久| 啊啊啊好大好深| 国产又色又粗又黄又爽| 玖玖综合.com| 玖玖爱伊人玖玖爱| 国产隔壁老王影院在线| 欧美日韩国产传媒在线精品| 中文字幕AV片| 亚洲成人精品在线一区| 欧美性色综合网| 青青草原伊人网| 在线色导航| 久久久久成人蜜桃精品| 蜜臀网址在线| 人人色人人操在线| 天天干夜夜操一区二区| 91高清无码下载| 国产精品 午夜福利| 超碰91在线| 亚洲天堂 视频你懂的| 久久少妇人妻| 国产精品久久久久久无码红治院| 欧美亚洲高清不卡| 日韩性爱人人爱人人操| 一区麻豆 高清中文字幕| 偷拍 亚洲 欧美| 午夜色婷婷| 日产成人久久| 亚洲一区中文字幕一区| 一卡二卡三卡| 伊人色综合网| 国产 日韩 欧美一区| 日本福利社| 丰满人妻-区二区三区免费看| 中文字幕日本久久| 欧美在线亚洲| 亚洲第一综合| 超碰91在线| 亚洲第一综合| 国产a片操逼| 欧美72网页| 亚洲综合有玛| www.久久最新地址| 欧美第五页| 色9999日韩国产| 怡春院久久| 色综合色综合网| 大香蕉中文网| 东北女人av| 久久av无码| 久久99草| 天天插天天操| 国产精品懂色tv影视免费观看| 久久久99久9| 欧美偷拍区| 色偷综合| 无码99| 精品蜜乳AV免费观看| 国产久久一区二区三区野外在线| 中文字幕一区二区三区字幕| 91久久堂| 色五月首页| 国产精品第一页国产大屁股视频免费区| 99激情| 天天综合网日韩| 欧美综合在线91| 亚洲精品影视老司机| 国模久久在线| 亚洲少妇色| 伊人网高清| 婷婷情色综合网| 国产多人在线观看视频| 人人澡人人干| 天美精品一区二区三区四区在线观看| 久久久久国产一区二| 亚州色站 日韩电影| 久久精品中文字幕观看| 人人妻人人爽人人精品| 刺激性视频黄页| 久久中文字幕一区不卡| 亚洲欧美91| 99精品网站| 欧美日韩在线视频网站| 五十路二区在线| 91人妻Pr| 久思思热视频在线观看| www国产无码| 久久九精品| 日本大片日本一区二区免费高清 | 日本一区三级韩国| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 亚洲情色综合网| 伊人成人中文字幕久久网| 2019天天干天天操| 日本视频在线中文字幕| 九九九九97| 91女神在线视频| 密桃99999| 成人三一级一片aaa| 国产白丝AV| 狠狠躁天天躁日日躁97| 磁力99AV| 欧美 综合| 五月丁香婷婷综合| 久久久久久国产精品免费网站| 国产精品丝袜在线| 无码精品啪啪啪一区二区三区三州| 色综合美国| 日韩激情啪啪| 飘花国产午夜精品不卡| 无码不卡八戒| 亚洲国产成人精品女人久久久| 无卡一区=区| 91五月天| 91 丝袜在线观看| 啊啊啊好湿国产一二| 99热在线播放| 日韩欧美视频青青| 国产一区二区三区中文字幕| 性吧在线视频| 六月激情网| 干婷婷综合网| 91碰碰| 激情久久av一区av二区av| 亚洲码在线中文在线观看| 91天天综合日韩欧美| 国产精品播放| 97超碰中文在线| 亚洲色阁| 夜色综合| 免费a级毛片av无码久久精品中文字幕| 玖玖久久久| 色路综合| 亚洲资源站| 日本影视久久免费| 日本伦乱九九九综合| 国产传媒日韩| 性无码专区2020| 久艾草在线精品视频在线观看| 成人av福利在线观看| 亚洲精品九九九| 欧美性爱第1 页| 青青久草| 欧美成人一级麻豆| 国产亚洲欧美每日在线| 最新三级网址| 一区二区三区四区免费视频| 99熟女| 99久久久| 国产视频一区二区在线观看| 天天躁夜夜躁狠狠躁AV| 欧美性夜| 一级性爱视频免费观看| 搡老人老9丨女老熟人| 九色婷婷| 色诱中文字幕| 大干人妻| 草草草视频在线免费看| 日韩精品一区二区日韩| 91九色网| 日欧美色| 后入日本1234| 精品国产91av一区二区三区| 中文字幕 国产 精品| 小少妇| 97在线资源| 97亚洲色图| 乱伦日本中文自拍| AV大香蕉| 96超碰网| 国产精品制服丝袜清纯唯美| 久久综合婷婷| 韩国国产欧美情侣视频在线| 97啪啪| 日本午夜操逼| 中文字幕日产av人| 久久久久久久六六| 亚洲伊人久久综合97| 久草福利在线资源站| Julia在线播放亚洲久久| 超碰中文字幕人妻草一区| 国产综合久| www.yeyecao| 99热自拍| 天天影视综合色| 99久久久久久亚洲精品不卡| 99激情| 久久一本大香蕉 | 久久久久久免费电影| 竹菊一区二区三区AV线| 国产黄色 A 片免费看| 久久人妻97久久久久久久| 亚洲欧美综合网站| 亚洲一区二区在线观看91| 激情AV| 欧美综合网1| 台湾一区国产高清在线| AV色天香在线| 美女高潮国产高清| 色色色色综合网| 欲香欲色天天天综合和网| 欧美性爱综合,免费| 九九热AV| 自拍六区| 综合 欧美 亚洲 日本| 操操操操网黑人| 国产午夜在线观看| 欧美成人精品一区二区三区| 18禁止看精品中文字幕| 婷婷久草一区二区三区| 99热婷婷一区二区三| 国产AV高清AV无码| 久久久久久久久久久久色网| 天天躁日日躁AAAXX| 亚洲日韩乱码中文无码蜜桃臀网站| 国产精品不卡高清在线观看| 97超碰69| 乱伦一二三区| 久久国99999| 日韩性爱毛片操骚逼| 老熟女区| 秋霞成人一级在线观看| 天美传媒在线一区| 国产综合网站在线播放| 四虎免费视频| 91精品国产麻豆国产自产在| 97超碰超| 搡老女人老妇女老妇老熟女怎么读| 亚洲中文字幕熟女少妇一区二区| 成人av免费观看| 99国产精品| 天天干一区二区| 天天视频黄| 天操老女人| 国产第25页在线观看| 偷拍新久久| 秋霞视频一区二区 | 人妻一二三区| 四季av一区二区凹凸精品小说| 国产精品视频白浆免费| 国产精品乱码久久久久| 久久熟女人| 26uuu国产亚洲综合| 欧洲精品人妻| 亚洲午夜免费狠狠干| 天天操夜夜操| 欧美日韩另类字幕中文| www.色婷婷| 欧美夜夜草视频| 伊人网在线视频| 99日韩| www.亚洲成人一区| 女人18精品一区二区三区| 久久五月综合| 逼操网站| 免费视频一二三区| 亚洲性少妇| 六月色色| 亚洲国产一区二区入口| 欧美96在线|欧| 99热超碰| 99色在线| 日本一级婬片试看三分钟| 97在线观看视频| 97爱b| 蜜臀av在线播放一区二区三区| 国产精品96久久久久久| 夜夜嗨av午夜成人| 欧美在线观看综合国产| 中国操逼无码| 亚洲91在线| 激情婷婷丁香| 精品免费1| 99国产人成精品| 亚州AV无码国产精品| 肏逼视频日本| 欧亚日韩一区在线| 亚洲春色欧美| …中文字幕亚洲乱,97人妻无码费视…| 熟女中出视频| 国产成人资源| 五月天丁香网| 精品少妇一区二区三区在线视频| 欧美精品23| 九九九精品| 国产精品久久久亚洲第一牛牛_在线观看| 桃色六月天| www.99热| 国产欧美日韩在线观看麻豆传媒公司 | 男女性感激情网站| 国产亚洲色停停久久99精品91| 蜜臀久久99精品久久久久久酒店| 亚洲色综网| 综合欧美日韩在线| 中文字幕一区二区三四五区日日骚| 青青草九九九九九| 九九在线视频| 91亚洲黑人| 激情丁香五月婷婷| 色婷婷久久| 搡老熟女老女人老熟妇免费视频| 久久99人妖视频国产| 日本免费专区| 日本狂喷奶水在线播放212| 中文字幕高清精品一区| 秋霞网无码| 啊啊啊草死我| 成人av性爱电影在线观看| 9久久精品| 激情一区二区| 强奸抽插av| 手机午夜电影神马久久| 黄人人操人人操| 日产操逼| 日日操丁香五月天| 另类一区| 九九综合久久| 丝袜综合| 亚洲十八禁止| 激情四射婷婷六月天| 欧美另类丝袜熟女| 密臀在线一区尤物| 久久伊人最新网址视频| 日本性爱欧美性爱| 国产精品爽爽va在线观看98| av国产无码| 欧美熟妇视频| 啊啊啊快操我视频| 日韩色图 一区二区| 嗯嗯不要 视频| 综合夜夜| 欧美日韩日产免费网站看| 人、人、摸,人、人、草| www久| 91在线美女| 熟女精品一区二区在线观看| 99久在线精品99re8蜜桃| 精品少妇999| 伊人久久综合影院精品久久久| 亚洲国产精品9999在线观看| 淫荡少妇免费| 91狠狠色丁香婷婷综合久久| 乱老熟女一区二区三区| 国产精品粉嫩福利在线| 免费国产视频| 黄色片大香蕉| 人妻夜夜爽天天爽麻豆三区网站 | 日韩欧美成人性爱在线| 亚洲无码一区二区三区三州| 春色校园综合网| 色香91| 97视频在线| 久久久久国产精品片区无码直播| 91亚州日韩高清| 精品一区二区三区四区外站| 91这里只有精品| 强奸乱伦资源| 超碰色中文| 东京热毛片177b2viP| 精品国产一区二区三区四区在线看| 亚洲aV无码成人在线观看| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 97爱爱爱| 综合色色婷婷| 亚洲熟久久| 99无码狠狠久久| 国产版a级片直播在线| 国产熟女| 狠狠操狠狠操操| 人人色人人操在线| 高清不卡 中文 人妻| 成年人网站在线免费观看| 狠狠爱综合| 精品久操| 户外裸露刺激视频第一区| 日韩精品高清资源在线| 一级二级在线观看| 久久九九99| 麻豆a'v电影| 国产熟女乱论| 精品久久久不卡一区二区| 一起草高清无码| 97资源超碰| 97久久久久| 日欧操屄视频| 欧美在线亚洲| www.五月天| 99re只有精品| 黄片国产精品一区二区| 又摸又舔在线观看网站| 亚洲第一男人天堂| 日本色色色| 天天综合91入口| 婷婷97| 97欧美日韩精品| 久久久国产三级黄色片| 91N综合网| 综合久久中文字幕综合日韩精品| 欧美三级一级| 色色色色色色色色综合| 欧美爱国产综合、| 欧美精品三区| 天天透伊人| 午夜精品久久久| 日韩一999精品| 久草尤物| 亚洲 图片 综合91| 69视频入口| 成人久久无码www| 艹精品| 欧美国产操逼| 午夜国产成人福利视频| 97se亚洲综合自| 红杏大香蕉| 秋霞 色色| 97伪v| 欧美性爱精品一区二区| 麻豆熟妇乱妇熟色A片在线看| 丁香六月综合激情| 成·人免费午夜在线观看| 91 国产丝袜在线放观看| 国产亚洲精品无码三区| 大香蕉伊然在亚洲91| 亚洲欧美综合区自拍另类| 蜜臀久久99'精品久久久| 久久老子无码午夜伦不卡| 东京热双插| 乱码熟妇人妻久久久| 国产精品熟女九色九色蜜臀| 97操碰| 天天日日舔舔| se01国产在线视频| 丰满人妻一区二区三区四区| 欧美人妻精品| 成人八戒网站| 日本欧美中文字幕| 久操网在线| 使劲用力艹少妇视频一区二区| 在线观看黄色电话| 一起草高清无码| 老司机福利社视频在线观看| 九九热男人天堂| 国产大学生口爆吞精合集| 色欧美综合| 青女在线| 国产a级午夜毛片| 欧美性生活男人的天堂| 色天天野狼综合社区| 久久成年精品| 色婷婷狠狠| 欧美 日韩 亚洲 春色| 97超碰护士| 本道在线| 久久超碰、| 色女女女导航| 在线v中文字幕一区二区三区 | 日本在线不卡v二区| 亚州综合网| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 欧洲中文字幕| 日本 欧美 亚中文字幕| 国产宅男宅女在线观看| 久久精品熟女亚洲AV麻豆软件| 夜夜嗨免费视频| 青草香蕉网| 久久综合精品一区二区三区| 青青草日韩无码| 国产亚洲精品玖玖玖在线观看| 男女激烈网站最新| 97免费视频在线观看| 嗯嗯嗯啊啊在线观看| 人妻五十路在线| 亚洲色图国产另类| 一区二区三区四区久久视1| 插入综合网| 色墦五月丁香| 99热这里都是精品| 涩五月婷婷| 3p国产色噜噜一区| 日韩欧美中文日韩欧美色| 国产精品国产亚洲区艳妇糸列| 国产深夜福利| 少妇一区二区三区| 精品亚洲天堂| 亚洲av成人精品一区| 色综91| 成人线上超碰| 中英熟女操女| 99无码狠狠久久| 精品人妻一区二区三区四区石在线| 91殴美| 精品蜜乳AV免费观看| 国产91精品在线免费| 神马久久午夜| 超碰在线人妻中文字幕| 国产在线能看的你懂的| 欧美AAAA黄片| 亚洲国产欧美一区二区潘金莲| 中国农村熟妇毛片视频| 免费精品人妻一区二区三| 国产探花精品在线| 九九碰九九爱97超碰| 超清福利精品视频在线| 中国一级操逼视频| wwwcaobibi| 丁香五月久久| 欧日a| 69精品少妇一区二区三区蜜桃| 天堂精品在线| 人妻人人澡人人爽人人| 成人欧美日超碰| 99色婷婷中文字幕乱色| 青青草久久| 91天堂| 日本一区二区中文字幕久久| 亚洲 日本 国产 综合| 伊人影院综合是一个与深夜成人在线| 亚洲av无线观看| 日韩97超碰中文字幕| 中美日韩毛片| 啊啊啊操死我了| 好吊色综合| 香伊人在线| 亚洲成人网站在线观看| 中文字幕欧美精品亚洲日韩蜜臀| 99国产精品| 国产无码高清操逼视频| 欧美日韩第一页| 美女的肌被草喷水视频| 色777999综合| 翔田千里Av在线| 婷婷色影院| 国产小炒后入式| 一区二区三区一亚洲中文字幕、综合区灬 | av中文字幕在线熟女| 少妇500双飞99| 后入式福利| 青青免费在线视频一区| 强奸乱亚洲| 国产精品视频播放| 精品人妻一区二区三区免费视频| 黄骗免费网站| 久热久| 天天射夜夜| 日韩熟女操逼| 水野优香在线观看| 少妇精品久久久八区九区| 人妻少妇久久中文字幕一区二区 麻豆| 伊人久久综合精品欧美| 韩国轻伦国内自拍一区| 超碰综合97在线| 丰满岳乱妇一区二区三区| 啊啊啊好爽快点啊啊啊嗯嗯| 精品小视频在线| 少妇久久久| 婷婷在线播放| 曰本特级特黄特色黄色A级网站高清在线免费看| 无码一区免费在线不卡| 91日韩在线| 欧美青青草视频| 国产亚洲女v在线观看| 精品视频日日夜夜| 欧美懂色综合网| 九九aV| 怡红院成人视频| 免费操逼视频下载| 中文字幕AV片| 亚洲AV噜噜狠狠网址蜜桃动漫| 色一射色一射| 老司机午夜精品视频| 麻豆60秒| 欧美色图色综合| 日本熟妇一区二区三区| 后入人妻无码| 大香网伊人久久综合| 欧美激色| 麻豆啪啪啪视频| 久久久九精品| 国产精品老师| 另类图片五月天| 草草电影院| 亚州再线| 日韩黄色av中文字幕| 欧美少妇高潮久久91| 黄色片A级一区二区三区| 欧美曰韩国产精品| www.yeyecao| 夜夜免费视频| 入口操逼网站| 国产AV天美传媒一区二区三区 | 粉嫩国产精品久久粉嫩| 色欲久久99国产精品久久久久久| 第一高清av中文字幕| 精品一区二区三区蜜桃| 九九色热| 国产精品黑人一区二区三区| 韩国轻伦国内自拍一区| 亚洲成aⅴ人片不卡无码| 久久超碰大香蕉| 亚洲欧洲激情卡通另类文学四射小说网站 | 97天天插| 久久婷综合| 中文字幕av亚洲精品| 亚洲国产综合久久天堂| 欧美国产欧美在线观看| 91激情综合| 国产成人免费观看在线视频| nuu12国产麻豆精品| 激情丁香婷婷| 日本高清免费一本视频在线观看| 亚洲自拍一区夜夜操| 国产情侣自拍在线播放| 日韩有码专区| 日本欧美色| 亚洲成人美女无吗| 啊啊啊啊网站| 超碰1024久久| 午夜视频久久久久一区| 啊啊啊男女| 91欧美少妇| 久久精品视频久久久| 一二三四视频中文字幕在线看| 99色在线| 嗯嗯啊啊用力视频免费| 激情五月天社区| 亚洲毛片基地专区| 精品妇操一区二区三区| 五月婷婷丁香六月| 天天摸夜夜添无码小视频| 一卡二卡三卡| 91麻豆天美传媒HD| 女优免费一区二区永久| 免费观看性欧美一级| 亚洲 日本 不卡| 欧美亚洲丝袜美女电影| 99色在线| 91精品国产日韩欧美综合| 女人综合网| 亚洲天堂电影网| 狠狠搞 亚洲91| 亚州操逼网| 在线欧美69V免费观看视频| 久久黄人人爽视频| 成人日韩中文字幕| 欧美亚洲玖玖玖| 久久久久久精品免费看A级| 日本熟女不卡视频| 青青草国产欧美非洲黑人| 精品一区二区2| 国产精品网站www| 亚洲有薄码区日本系列中文字幕| 无码逼| 精品国产91av一区二区三区| 亚洲欧洲自拍| 久久老熟女| 中文无线日韩一区| 超碰97亚洲区| 樱花草社区www中国| 久极品在线观看| 99热在线观看| 91成人在线免费视频| 国产1024在线播放| 蜜臀久久99精品久久久久久婷婷 | 91综合天天看| 日本天堂在线播放| 欧美成人色| 97露脸精品丝袜| 97操97色| 91精品人妻一区二区三区蜜桃臀 | 综合色91| 九久久精| 葡萄牙性视频一二区| 超碰社区97| 香蕉大久久久| 综合av影片| 330dv亚洲成年视频网| 日夜久久久九九九久| 97久久超碰| 天天拍天天操| AV中文在线| 色综合美国| 久7色| 天天摸夜夜摸| 啊嗯好大视频在线观看| 天天享受天天看| 极品内射| 青青草一区二区三区四| 欧美高潮| 狠狠躁伊人中文字幕| 天天干人人乐| 中文字幕国产在线天堂| 久久精品无码专区| 97亚洲综合影院| 床戏久久久av一区二区麻豆| 色香综合| 久久久91| 国产无码精品成人| 日韩欧美性爱电影在线观看| 家庭乱伦国产| 国产精品福利视频播放| 老司机老司机午夜影院| 久久中文字幕一区不卡| 成年人性爱日韩| 激情网色| 屌逼麻豆| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 亚洲一卡2卡3卡4卡乱码网站| 亚洲国产欧美另类自拍| 国产福利精品最新在线| 天天爽天天干| 久操 高清| 欧美在线亚洲| 成人性爱AV在线免费观看| 日本在线不卡v二区| 丝袜AV一二三区| 色娱乐色呦呦夜夜夜夜av| 中文字幕第二页| 沈阳熟女高潮对白视频| 日本性爱不卡视频| 天天射网| 天天干夜夜操一区二区| 欧美亚洲中文| 亚洲精品天堂久久A∨51成人漫| 婷婷亚洲色| 男人的天堂色偷偷青青草视频婷婷网| 国产人妻精品一区二区三区秋霞 | 亚洲综合色男人网| 精品网站99999| 97 色综合| 国产精品久久久久无码A√| 国产亚洲色婷婷久久99精品91| 激激五月| 91美女视频直播| 久久综合九色综合欧洲98| 嫩草影院性色| 国产精品亚洲四五区在线观看| 岛国不卡超碰护士AV在线播放| 婷婷丁香激情| 插欧洲美女欧美精品| 欧美日韩国产电影| 国产97av| 强奸乱伦日韩AV| 97国产色综合| 日韩有码中文字幕女同性恋| 岛国大片国产| 四虎影库国产精品免费| 九九九草| 日韩精品免费高清视频在线| 狠狠 91| 97神马久久| 国产精品蜜乳AV| 婷婷色香| yw尤物av无码点击进入麻豆| 国产成人自拍视频在线| 九九九九九九视频| 久久精品国产亚洲AV先锋| 丁香婷婷久久| 啊啊啊久久久视频| 操逼国产免费| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 激情小说亚洲| 日韩久久激情精品| 国产亚热在线久久| 欧美的性爱网站免费| 亚洲色图20p| 天美91| 在线 制服丝袜中出 人妻| 久久久极品| 国产第25页在线观看| 久久熟女久| 国产精品99精品视频网站| 日韩一级二级在线| 97综合久久| 久久久久国产亚洲一区欧美色图日韩| 亚洲欧美综合图片| 另类在线| 色原狠狠天天天| 欧亚乱色熟女一区二区| 久久久久久久综合,国产| 强奸乱伦AV网址| 淫色网综合| 永久免费观看的毛片的网站| 日日夜夜干| 熟女熟妇一区二区三四区| 另类专区在线观看| 亚洲色棕合| 一本道综合色图| 97这里只有精品| 日本天天吊| 国产女s强制榨精视频| 欧美性爱一内片一区二区三区| yw尤物av无码点击进入麻豆| 高树玛利亚无码流出| 蜜乳视频网站| 精品视频97| 8x福利精品第一福利视频导航| 色www精品视频在线观看| 一类av片在线看| 四虎影视 亚洲无码| 天天看,天天做| 亚洲久久久久| AV天堂电影网| 黑丝自慰喷水网站| 亚洲狠| 中文字幕av色| 国模不卡| 久久9999 | 天天干夜夜鈤| 宅男91视频在线播放| 最新中文字幕精品在线| 超碰97.com| http://qxhbdz.com| 豆花视频操逼网址| 久久精品一区二区三区蜜桃臀| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 九九热AV| 乱性AV| 亚洲污污网站| 日日狠狠久久偷偷色综合免费| 国产91美女视频| 欧美婷婷久久| 九热视频| 天天视频黄| 国产夫妻性生活视频| 天天影视网综合少妇| 国产亚洲女v在线观看| 亚洲国产亚洲天堂| 啊啊啊操一区| 操高情无码| 天天日天天看| 美女91av| 偷看洗澡一二三区美女| 日韩激情电影中文字幕| 超碰 欧美| 夜夜操老骚逼视频网站| 熟女六十路| 国产午夜在线观看| 91色欧美| 日韩人妻精品| 一牛影视久久久一区二区三区| 破苞ⅩXXX性无码动漫无码| 美女黄网| 国产后入式在线观看| 粉嫩AV输入| 天天综合91在线| 国产成人久久久精品免费AV| 精品视频在线观看精品| 91熟女丨老女人| 青青草国产一区二区三区| 色呦呦、国产精品| 天天流夜夜操| 无码操逼网| 黄片免费视频2019| 婷婷婷婷婷婷久久久久| 啊啊在线| 亚洲国产中文字幕| 亚洲人在线成线成人| 熟妇在线视频一区二区| 久久久成人国产精品无码| se吧提供91精品国产91久久久久久| 久 久无码人妻AV| 欧美综合狠| 日韩三级性| 伊人精品国产| 亚洲男人天堂2012| 蜜桃传媒一区二区亚洲| 国产精品蜜乳AV| 日韩av在线免费网站| 熟女乱伦A| 色欲久久久久综合网| 青娱乐国产剧情av一区| 啊啊啊爽爽| 高颜值美女口爆高潮浪叫| 五月天人妻综合| 色悠久久久av| 少妇特黄一区二区三区| 久艹99| 操逼精品视频| 殴美综合色88| av在线人气| 97久久久久久久精| 亚洲熟女国产综合另类| 97二区四区| 91oumei| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 日韩免费中文字幕视频| 日韩性爱长视频免费| 男人a天堂手机在线版| 亚洲图片 91| 久jiu久神马影院| 色女综合| 久久理论字幕视频| 日本加靬比网站发布页| 丁香五月婷婷基地| 超碰久久中文| 久久国99999| 日本黄色裸日本黄色裸体|