亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

SpringBoot2+Vue3校園生活信息平臺:前后端分離實(shí)踐與部署

SpringBoot2+Vue3校園生活信息平臺:前后端分離實(shí)踐與部署 1. 項(xiàng)目解析與整體思路1.1 校園生活信息平臺到底解決什么問題大學(xué)校園的信息流通說實(shí)話一直是個(gè)說起來重要、做起來隨意的事情。今天社團(tuán)要納新明天食堂有新品試吃后天圖書館臨時(shí)閉館——這些信息要么貼在公告欄要么發(fā)在幾個(gè)微信群里要么干脆靠口口相傳。學(xué)生想找二手教材、想撿回丟了的校園卡、想了解周邊兼職往往要翻好幾個(gè)群聊記錄效率極低。這套大學(xué)校園生活信息平臺就是沖著這個(gè)痛點(diǎn)去的。把校園內(nèi)的信息聚合到一個(gè)Web應(yīng)用里學(xué)生登錄后能看到分類清晰的通知公告、活動(dòng)動(dòng)態(tài)、失物招領(lǐng)、二手交易、校園問答等內(nèi)容也能自己發(fā)布信息。管理員則通過后臺管理用戶、審核內(nèi)容、維護(hù)分類形成一套從信息發(fā)布到消費(fèi)的完整閉環(huán)。先說清楚這套系統(tǒng)的適合人群。如果你是Java后端方向的在校生或者準(zhǔn)備做畢業(yè)設(shè)計(jì)、課程設(shè)計(jì)的開發(fā)者這套源碼的價(jià)值在于它覆蓋了用戶認(rèn)證 內(nèi)容發(fā)布 分類檢索 后臺管理這類典型業(yè)務(wù)場景技術(shù)棧又是目前國內(nèi)中小型項(xiàng)目最主流的SpringBoot2 Vue3組合。拿它做底子去改造比從零擼一個(gè)項(xiàng)目省太多事。如果你是企業(yè)里的開發(fā)新人想看看現(xiàn)代Java Web項(xiàng)目前后端分離的工程結(jié)構(gòu)長什么樣這套系統(tǒng)同樣值得參考。1.2 為什么選擇SpringBoot2 Vue3這套組合選型這事往往不是選最好的而是選最不容易出錯(cuò)的。這套系統(tǒng)用SpringBoot 2.7.x而不是SpringBoot 3很多人可能會(huì)問新的不好嗎其實(shí)在校生和大部分企業(yè)生產(chǎn)環(huán)境SpringBoot 2仍然是存量最大的版本。SpringBoot 3強(qiáng)制要求JDK 17起步一些老依賴的兼容成本會(huì)拖慢開發(fā)節(jié)奏。SpringBoot 2搭配JDK 8或JDK 11生態(tài)成熟網(wǎng)上資料多遇到問題搜一下就能找到答案這對學(xué)習(xí)者和中小型項(xiàng)目來說是實(shí)打?qū)嵉膬?yōu)勢。前端選Vue3而不是Vue2邏輯更簡單——Vue2已經(jīng)在2023年底停止維護(hù)新項(xiàng)目再用它等于給自己埋雷。而且Vue3的組合式APIComposition API在邏輯復(fù)用上的體驗(yàn)確實(shí)比Vue2的Options API舒服得多。再聊MyBatis-Plus。傳統(tǒng)MyBatis寫CRUD要手寫一堆XML單表操作用MyBatis-Plus幾乎不用寫SQL只靠BaseMapper提供的接口就能完成大部分持久化工作。配合它內(nèi)置的分頁插件、邏輯刪除、自動(dòng)填充開發(fā)效率是肉眼可見地提升。MySQL 8.0則是水到渠成的選擇窗口函數(shù)、公用表表達(dá)式CTE這些高級特性在寫統(tǒng)計(jì)報(bào)表類需求時(shí)非常好用而且8.0的默認(rèn)字符集utf8mb4對emoji等特殊字符的支持更友好做校園論壇類業(yè)務(wù)時(shí)會(huì)省掉不少亂碼煩惱。2. 數(shù)據(jù)庫設(shè)計(jì)與后端核心實(shí)現(xiàn)2.1 MySQL 8.0數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)要點(diǎn)數(shù)據(jù)庫設(shè)計(jì)是整套系統(tǒng)的地基。我第一次跑通這套源碼時(shí)把核心表梳理了一遍發(fā)現(xiàn)它的設(shè)計(jì)思路很典型用戶體系、內(nèi)容體系、交互體系分開每張表都留著擴(kuò)展余地。用戶表user是最基礎(chǔ)的字段大致包含id、username、password、nickname、avatar、phone、email、role學(xué)生/管理員、status正常/禁用、create_time、update_time。密碼存儲用的是BCrypt加密不是MD5也不是SHA1這一點(diǎn)值得好好學(xué)習(xí)——BCrypt每次加密生成的鹽都不同就算兩個(gè)用戶密碼一樣密文也不一樣暴力破解的成本高得多。內(nèi)容類表是整個(gè)系統(tǒng)的大頭圍繞信息發(fā)布場景拆分成多張表表名核心字段業(yè)務(wù)說明noticeid, title, content, category_id, publisher_id, status, views發(fā)布通知公告activityid, title, description, location, start_time, end_time, organizer, cover_url校園活動(dòng)信息lost_foundid, type(失物/招領(lǐng)), title, description, contact, status, image失物招領(lǐng)模塊second_handid, title, price, description, images, seller_id, status二手交易questionid, title, content, author_id, reward_point, status校園問答設(shè)計(jì)內(nèi)容表時(shí)有個(gè)容易忽略的坑盡量把分類信息做成category_id外鍵關(guān)聯(lián)而不是直接存字符串。雖然直接存失物招領(lǐng)這種字符串看起來簡單但后期想改分類名、做統(tǒng)計(jì)聚合就要寫一堆麻煩的UPDATE語句。用關(guān)聯(lián)表或關(guān)聯(lián)ID配合JOIN查詢擴(kuò)展性完全不一樣。MySQL 8.0還有一個(gè)非常實(shí)用的特性就是可以直接用CREATE TABLE ... LIKE復(fù)制表結(jié)構(gòu)做臨時(shí)表排查數(shù)據(jù)問題的時(shí)候比手動(dòng)建一張同結(jié)構(gòu)表快得多。索引設(shè)計(jì)上每張內(nèi)容表我都建議給create_time加索引因?yàn)榱斜聿樵兡J(rèn)按時(shí)間倒序這個(gè)索引能明顯減少排序開銷。系統(tǒng)源碼里大部分內(nèi)容表都有這個(gè)索引屬于中規(guī)中矩但正確的設(shè)計(jì)。2.2 MyBatis-Plus的高效CRUD實(shí)踐MyBatis-Plus最核心的玩法就是讓你的Mapper接口繼承BaseMapperT然后一堆單表操作就自動(dòng)有了。public interface NoticeMapper extends BaseMapperNotice { // 復(fù)雜查詢才需要自定義方法 IPageNotice selectNoticePage(PageNotice page, Param(keyword) String keyword); }有了這層繼承你不寫XML也能完成insert、deleteById、selectById、updateById、selectList這些基礎(chǔ)操作。但真正讓開發(fā)效率起飛的是它的QueryWrapper和LambdaQueryWrapper。比如查最新發(fā)布的前10條活動(dòng)信息且狀態(tài)為已發(fā)布一行代碼搞定LambdaQueryWrapperActivity wrapper new LambdaQueryWrapper(); wrapper.eq(Activity::getStatus, 1) .orderByDesc(Activity::getCreateTime) .last(limit 10); ListActivity list activityMapper.selectList(wrapper);LambdaQueryWrapper相比字符串形式的QueryWrapper最大的好處是類型安全——字段名寫錯(cuò)了編譯期就能發(fā)現(xiàn)不會(huì)等到運(yùn)行時(shí)SQL報(bào)錯(cuò)才排查。我在項(xiàng)目里只用一個(gè)原則單表查詢一律用Wrapper多表關(guān)聯(lián)才寫XML或注解SQL。MyBatis-Plus的分頁插件配置也很關(guān)鍵。如果你忘了配置MybatisPlusInterceptorselectPage查出來的數(shù)據(jù)會(huì)是全量然后內(nèi)存里截?cái)鄶?shù)據(jù)量一大直接系統(tǒng)變慢。正確配置如下Configuration public class MybatisPlusConfig { Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor new MybatisPlusInterceptor(); PaginationInnerInterceptor pagination new PaginationInnerInterceptor(DbType.MYSQL); pagination.setMaxLimit(100L); // 防止一次性查過多數(shù)據(jù) interceptor.addInnerInterceptor(pagination); return interceptor; } }setMaxLimit(100L)是我強(qiáng)烈建議加上的——它可以從框架層面阻止有人惡意調(diào)用接口時(shí)size傳一個(gè)巨大的值把數(shù)據(jù)庫查崩。這種防御性設(shè)置很多項(xiàng)目都忽略了。另外字段自動(dòng)填充用起來也舒服。新建實(shí)體時(shí)createTime和updateTime如果有TableField(fill FieldFill.INSERT)標(biāo)記再寫一個(gè)實(shí)現(xiàn)MetaObjectHandler接口的類就能在插入和更新時(shí)自動(dòng)填充時(shí)間字段業(yè)務(wù)代碼里完全不用關(guān)心時(shí)間戳賦值。2.3 關(guān)鍵業(yè)務(wù)模塊的接口設(shè)計(jì)這套系統(tǒng)的后端接口風(fēng)格是標(biāo)準(zhǔn)的RESTful。認(rèn)證模塊用JWTJSON Web Token做無狀態(tài)登錄用戶登錄成功后后端返回一個(gè)token前端把它存到本地之后每次請求都在請求頭帶上Authorization: Bearer token后端通過攔截器校驗(yàn)身份。這么做的好處是服務(wù)端不需要存Session對前后端分離部署非常友好。登錄接口的邏輯大致這樣PostMapping(/login) public Result login(RequestBody LoginDTO dto) { // 1. 根據(jù)用戶名查用戶 User user userMapper.selectOne( new LambdaQueryWrapperUser() .eq(User::getUsername, dto.getUsername()) ); // 2. 校驗(yàn)密碼BCrypt if (user null || !BCrypt.checkpw(dto.getPassword(), user.getPassword())) { return Result.error(用戶名或密碼錯(cuò)誤); } // 3. 檢查狀態(tài) if (user.getStatus() 0) { return Result.error(賬號已被禁用); } // 4. 生成JWT String token JwtUtil.generateToken(user.getId(), user.getUsername(), user.getRole()); return Result.success(new LoginVO(token, user)); }內(nèi)容發(fā)布類的接口除了必要的參數(shù)校驗(yàn)后端還需要做一層權(quán)限校驗(yàn)?zāi)男┙巧馨l(fā)布、哪些內(nèi)容需要管理員審核。這套系統(tǒng)的處理方式是發(fā)布接口要求登錄發(fā)布之后內(nèi)容狀態(tài)默認(rèn)為待審核管理員在后臺審核通過才對外展示。這種設(shè)計(jì)比起所有內(nèi)容直接發(fā)布可控性高很多適合校園場景避免有人亂發(fā)廣告或不當(dāng)內(nèi)容。我還注意到一個(gè)細(xì)節(jié)分頁接口統(tǒng)一返回格式為{ records, total, current, size }前端配合Vue3的分頁組件幾乎是拿到即用。接口返回統(tǒng)一用Result包裝類約定code200表示成功其他code表示各種業(yè)務(wù)錯(cuò)誤。這種統(tǒng)一約定前后端聯(lián)調(diào)時(shí)最大的價(jià)值是——不需要每個(gè)接口都討論返回結(jié)構(gòu)長什么樣效率提升非常明顯。3. Vue3前端工程化實(shí)踐3.1 Vite構(gòu)建 Element Plus組件庫Vue3項(xiàng)目用Vite做構(gòu)建工具現(xiàn)在基本是默認(rèn)選項(xiàng)了相比Webpack冷啟動(dòng)速度快到讓人心情舒暢。Vite基于原生ESModule開發(fā)的時(shí)候只編譯修改的文件而不是整包重新打那種秒級熱更新的體驗(yàn)用習(xí)慣了真的回不去。前端工程結(jié)構(gòu)上頁面組件放在src/views公共組件放src/components狀態(tài)管理用Pinia路由用Vue Router 4。這套結(jié)構(gòu)是目前Vue3社區(qū)的標(biāo)準(zhǔn)答案照著寫基本不會(huì)出大錯(cuò)。Element Plus作為UI組件庫提供了表格、表單、彈窗、分頁等現(xiàn)成組件做后臺管理類界面效率極高。校園信息平臺的用戶端界面用Element Plus的卡片、列表、標(biāo)簽組件也能拼出很清爽的效果。// vite.config.ts 關(guān)鍵配置 import { defineConfig } from vite; import vue from vitejs/plugin-vue; export default defineConfig({ plugins: [vue()], server: { port: 3000, proxy: { /api: { target: http://localhost:8080, changeOrigin: true } } } });這個(gè)proxy配置尤其重要它解決了開發(fā)環(huán)境的跨域問題。前后端分離的項(xiàng)目前端運(yùn)行在3000端口后端在8080端口如果不在Vite里代理瀏覽器直接發(fā)請求會(huì)被CORS攔下來。配了代理之后前端代碼里寫的/api/login在開發(fā)時(shí)會(huì)被自動(dòng)轉(zhuǎn)發(fā)到http://localhost:8080/api/login聯(lián)調(diào)體驗(yàn)非常順滑。3.2 組合式API與核心頁面實(shí)現(xiàn)Vue3的組合式API對比Options API最大的區(qū)別就是讓代碼按功能組織而不是按選項(xiàng)類型組織。同一個(gè)功能的響應(yīng)式變量、計(jì)算屬性、方法、監(jiān)聽器可以放在一起寫改代碼時(shí)不用上下反復(fù)跳。以失物招領(lǐng)頁面為例核心邏輯用組合式API寫出來大概是這樣的結(jié)構(gòu)script setup langts import { ref, onMounted } from vue; import { getLostFoundList } from /api/lostFound; import { ElMessage } from element-plus; // 響應(yīng)式數(shù)據(jù) const list ref([]); const total ref(0); const loading ref(false); const queryParams reactive({ current: 1, size: 10, type: , status: 1 }); // 加載列表 async function loadList() { loading.value true; try { const res await getLostFoundList(queryParams); list.value res.data.records; total.value res.data.total; } finally { loading.value false; } } // 頁碼變化時(shí)重新加載 function handlePageChange(page: number) { queryParams.current page; loadList(); } onMounted(loadList); /script這個(gè)模式可以通用到幾乎所有列表頁定義查詢參數(shù)、調(diào)用接口、回填列表數(shù)據(jù)、處理分頁。我第一次用組合式API寫這種頁面時(shí)最大的感受是邏輯密度高且結(jié)構(gòu)線性不像Options API那樣數(shù)據(jù)、方法、生命周期散落三個(gè)區(qū)域。script setup語法糖更是把模板里的變量暴露操作簡化到了極致寫起來像是寫一個(gè)特別大的函數(shù)組件。用戶端的頁面還有幾個(gè)值得留意的交互細(xì)節(jié)。比如二手交易首頁每個(gè)商品卡片上有縮略圖、價(jià)格、成色標(biāo)簽點(diǎn)擊進(jìn)入詳情頁之后能看到賣家信息。這種前后端分離的項(xiàng)目圖片存的是URL字符串前端用el-image組件去渲染同時(shí)做好懶加載。大圖多的時(shí)候懶加載能顯著加速首屏渲染。3.3 Pinia狀態(tài)管理與權(quán)限控制Pinia是Vue3官方推薦的狀態(tài)管理庫比Vuex更簡潔沒有mutations的概念直接在store里寫action函數(shù)就能修改state。校園信息平臺的用戶狀態(tài)用Pinia存儲很合適登錄成功之后把用戶信息保存到store里導(dǎo)航欄的頭像和用戶名就反應(yīng)式地更新了。// stores/user.ts export const useUserStore defineStore(user, { state: () ({ token: localStorage.getItem(token) || , userInfo: null }), getters: { isLogin: (state) !!state.token, isAdmin: (state) state.userInfo?.role ADMIN }, actions: { login(token: string, user: UserInfo) { this.token token; this.userInfo user; localStorage.setItem(token, token); }, logout() { this.token ; this.userInfo null; localStorage.removeItem(token); } } });token放localStorage是一種常見做法好處是刷新頁面后會(huì)話不丟。風(fēng)險(xiǎn)點(diǎn)在于XSS攻擊——如果頁面被注入了惡意腳本腳本可以直接讀取localStorage拿到token。為了緩解這個(gè)風(fēng)險(xiǎn)前端要對用戶輸入內(nèi)容做轉(zhuǎn)義處理Element Plus的表單校驗(yàn)和基本組件本身就做了不少防護(hù)。更穩(wěn)妥的替代方案是放httpOnly Cookie但那樣又要改后端跨域配置權(quán)衡之下很多項(xiàng)目還是愿意存在localStorage。路由權(quán)限這塊Vue Router 4支持在路由配置里加meta字段標(biāo)記角色然后通過全局前置守衛(wèi)beforeEach做攔截router.beforeEach((to, from, next) { const userStore useUserStore(); if (to.meta.requiresAuth !userStore.isLogin) { next({ path: /login, query: { redirect: to.fullPath } }); } else if (to.meta.requiresAdmin !userStore.isAdmin) { next({ path: / }); } else { next(); } });再加上后端接口的權(quán)限攔截雙保險(xiǎn)基本能覆蓋校園信息平臺的權(quán)限需求。這里我強(qiáng)烈建議前端權(quán)限只能管體驗(yàn)和界面真正的數(shù)據(jù)安全必須靠后端控制否則接口被直接調(diào)用繞過前端也攔截不了。4. 部署、文檔與常見問題排查4.1 本地開發(fā)環(huán)境搭建想跑通這套系統(tǒng)先花半小時(shí)把環(huán)境準(zhǔn)備好后面會(huì)順暢很多。環(huán)境清單JDK 8或11SpringBoot 2完全支持Maven 3.6MySQL 8.0本地或Docker都行Node.js 16Vue3和Vite的要求IDEA社區(qū)版免費(fèi)但最好裝Lombok插件MySQL 8.0的安裝Windows用戶我推薦直接下載ZIP包解壓安裝不裝MSI安裝器因?yàn)镸SI版本經(jīng)常被系統(tǒng)權(quán)限卡住。解壓之后執(zhí)行mysqld --initialize-insecure初始化然后net start mysql啟動(dòng)服務(wù)再用mysql -uroot -p免密登錄后改密碼一套下來十分鐘搞定。Linux環(huán)境如果有Docker更省事docker run -d \ --name mysql8 \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD123456 \ -e MYSQL_DATABASEcampus \ mysql:8.0前端依賴安裝有個(gè)注意點(diǎn)優(yōu)先用npm install不要用cnpm。cnpm雖然下載快但經(jīng)常出現(xiàn)依賴的軟鏈接結(jié)構(gòu)異常導(dǎo)致Vite啟動(dòng)報(bào)錯(cuò)排查起來很痛苦。如果npm網(wǎng)絡(luò)慢可以設(shè)置淘寶鏡像npm config set registry https://registry.npmmirror.com速度和穩(wěn)定性都比cnpm好。數(shù)據(jù)庫初始化時(shí)注意MySQL 8.0的默認(rèn)認(rèn)證插件是caching_sha2_password有些老版本的數(shù)據(jù)庫連接驅(qū)動(dòng)只支持mysql_native_password會(huì)報(bào)Public Key Retrieval is not allowed之類的錯(cuò)誤。解決辦法有兩個(gè)一是把數(shù)據(jù)庫連接URL加上allowPublicKeyRetrievaltrue二是在application.yml里正確配置驅(qū)動(dòng)類com.mysql.cj.jdbc.Driver。這套源碼的數(shù)據(jù)庫URL還帶了一長串參數(shù)其中useSSLfalse是必要的本地開發(fā)環(huán)境不需要SSL加密。4.2 常見問題速查表跑項(xiàng)目過程中幾個(gè)高頻問題基本每個(gè)開發(fā)者都會(huì)遇到直接整理成速查表問題現(xiàn)象根本原因解決辦法后端啟動(dòng)失敗報(bào)Unknown database campus數(shù)據(jù)庫沒有創(chuàng)建先執(zhí)行CREATE DATABASE campus再初始化SQL腳本前端接口請求全部404Vite代理路徑和后端context-path不一致檢查前后端/api前綴是否統(tǒng)一登錄后前端反復(fù)跳回登錄頁token寫入/讀出不一致或JWT密鑰不對檢查Pinia里存儲的token key和后端JWT配置是否一致MyBatis-Plus分頁不生效返回全量沒配置PaginationInnerInterceptor按前文配置加入MybatisPlusInterceptor時(shí)間差8小時(shí)數(shù)據(jù)庫時(shí)區(qū)設(shè)置問題JDBC URL加serverTimezoneAsia/Shanghai上傳圖片打不開本地存儲路徑配置不對檢查application.yml里的文件上傳路徑并做靜態(tài)資源映射npm install后Vite啟動(dòng)報(bào)錯(cuò)依賴版本不匹配刪除node_modules和package-lock.json重新安裝時(shí)間問題一定要單獨(dú)強(qiáng)調(diào)。MySQL 8.0默認(rèn)時(shí)區(qū)是UTC如果JDBC URL沒指定serverTimezoneJava的LocalDateTime讀到的時(shí)間會(huì)比你本地時(shí)間晚8小時(shí)。校園活動(dòng)的開始時(shí)間是晚上7點(diǎn)前端顯示成了凌晨3點(diǎn)這個(gè)bug排查起來極其迷惑。解決方案就是在連接串里顯式寫上serverTimezoneAsia/Shanghai同時(shí)可以在MySQL里執(zhí)行SET GLOBAL time_zone 8:00徹底根治。4.3 不同難度環(huán)境的部署思路開發(fā)環(huán)境跑通之后把系統(tǒng)真正部署到服務(wù)器上是另一個(gè)階段。這套系統(tǒng)前端是純靜態(tài)文件后端是Spring Boot的可執(zhí)行JAR包部署思路很清晰后端部署用Maven打包前先確認(rèn)application.yml里數(shù)據(jù)庫連接改成了生產(chǎn)環(huán)境配置然后執(zhí)行mvn clean package -DskipTests生成的JAR包直接放到服務(wù)器上nohup java -jar campus-server.jar --spring.profiles.activeprod app.log 21 前端部署npm run build之后生成的dist目錄是一堆靜態(tài)文件可以交給Nginx托管同時(shí)Nginx配置反向代理把/api開頭的請求轉(zhuǎn)發(fā)到后端的8080端口server { listen 80; server_name campus.example.com; root /var/www/campus/dist; index 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; } location / { try_files $uri $uri/ /index.html; } }try_files $uri $uri/ /index.html這一行千萬不能少。Vue Router用了history模式刷新/lost-found這個(gè)路徑時(shí)Nginx要在磁盤上找不到對應(yīng)文件的情況下把請求導(dǎo)回index.html讓Vue Router接管路由。少了這行刷新就404部署上線后最常踩的坑之一。如果服務(wù)器內(nèi)存緊張前端還可以考慮不單獨(dú)部署Nginx直接用Spring Boot的靜態(tài)資源映射把dist目錄托管但那樣會(huì)讓前后端耦合以后做獨(dú)立部署或擴(kuò)容會(huì)麻煩很多。我的建議是標(biāo)準(zhǔn)方案Nginx管前端獨(dú)立Java進(jìn)程管后端互不干擾。5. 文檔質(zhì)量與二次開發(fā)建議5.1 配套文檔怎么看、怎么用這套源碼自帶文檔很多人容易低估文檔的價(jià)值。我拿到的文檔內(nèi)容一般包括項(xiàng)目介紹、技術(shù)選型說明、數(shù)據(jù)庫表結(jié)構(gòu)說明、接口文檔、部署文檔??次臋n有技巧不是從頭到尾讀一遍就完事而是帶著要解決的問題去查。后端要改接口邏輯就看對應(yīng)的控制器和Service代碼前端要做新頁面就看一個(gè)類似頁面的路由、接口和組件是怎么搭起來的。接口文檔的價(jià)值在聯(lián)調(diào)時(shí)尤其凸顯。用Swagger或接口文檔工具導(dǎo)出的API列表參數(shù)類型、是否必填、返回結(jié)構(gòu)一目了然。我自己排查問題最快的一次就是發(fā)現(xiàn)前端傳的參數(shù)名是goods_id后端解析的字段是goodsId對齊接口文檔之后五分鐘定位到問題。凡是前后端聯(lián)調(diào)出現(xiàn)參數(shù)對不上的詭異問題第一反應(yīng)一定是去查接口文檔而不是反復(fù)看代碼。5.2 從這套系統(tǒng)擴(kuò)展成真正能用的產(chǎn)品源碼是起點(diǎn)不是終點(diǎn)。要從能跑變成能用還有幾條路可以走第一個(gè)方向是消息推送能力?,F(xiàn)在的校園信息平臺如果需要實(shí)時(shí)通知用戶比如活動(dòng)報(bào)名成功提示、失物招領(lǐng)匹配提醒可以接入WebSocket或服務(wù)器推送技術(shù)。Spring Boot集成WebSocket后端用ServerEndpoint寫一個(gè)推送端點(diǎn)前端Vue3用new WebSocket()建立連接數(shù)據(jù)結(jié)構(gòu)可以自己定義核心是把用戶ID和連接會(huì)話做一個(gè)綁定關(guān)系這樣才能定向推送。第二個(gè)方向是文件資源管理?,F(xiàn)在圖片上傳都放在本地磁盤單機(jī)沒問題但生產(chǎn)環(huán)境如果有多個(gè)后端實(shí)例上傳的圖片在A機(jī)器、請求落到B機(jī)器就訪問不到了。把存儲層換成對象存儲或者至少規(guī)劃一個(gè)獨(dú)立的靜態(tài)資源域名是必須考慮的改造點(diǎn)。第三個(gè)方向是內(nèi)容審核自動(dòng)化。校園信息平臺如果用戶量上來人工審核內(nèi)容會(huì)變成大負(fù)擔(dān)??梢詮膸讉€(gè)維度做自動(dòng)化敏感詞過濾、圖片審核、用戶舉報(bào)降權(quán)、異常發(fā)布行為風(fēng)控。這些能力在源碼基礎(chǔ)上是一個(gè)個(gè)模塊加進(jìn)去的結(jié)合Spring Boot AOP做方法級攔截改造起來非常順手。5.3 我做過的改造實(shí)踐和經(jīng)驗(yàn)總結(jié)最后分享兩個(gè)真實(shí)場景的調(diào)整記錄可以幫助你更好地理解數(shù)量級變化對系統(tǒng)的影響。第一件事我把這套系統(tǒng)的列表頁從每頁10條改成了每頁20條前端分頁參數(shù)改了之后發(fā)現(xiàn)接口響應(yīng)明顯變慢。排查后發(fā)現(xiàn)內(nèi)容表雖然create_time有索引但查詢條件里還用了status字段做過濾而status沒有索引。MySQL 8.0在聯(lián)合條件查詢時(shí)沒走理想的索引策略數(shù)據(jù)量到幾萬條后性能就有了可感知的下降。最后我加了一個(gè)(status, create_time)的聯(lián)合索引問題直接消失。這類數(shù)據(jù)量上來才會(huì)暴露的問題在校園平臺這種中小型系統(tǒng)里也可能會(huì)遇到遇到時(shí)別慌慢慢看執(zhí)行計(jì)劃。第二件事我在做用戶活躍度統(tǒng)計(jì)時(shí)用到了MySQL 8.0的窗口函數(shù)。統(tǒng)計(jì)每周發(fā)布內(nèi)容數(shù)量排名前10的用戶傳統(tǒng)寫法要自連接或子查詢用ROW_NUMBER()或RANK()窗口函數(shù)幾行就搞定了。這讓我強(qiáng)烈推薦大家在項(xiàng)目里多嘗試MySQL 8.0的新特性寫統(tǒng)計(jì)報(bào)表SQL會(huì)輕松一個(gè)量級。如果你正準(zhǔn)備上手這套源碼我的建議是拿到手先在本地完整跑通一遍然后用文檔里的數(shù)據(jù)庫說明把表結(jié)構(gòu)梳理一遍接著選一個(gè)你最感興趣的模塊從頭到尾讀一遍后端代碼和前端代碼的調(diào)用鏈路最后再動(dòng)手改一個(gè)功能。這樣一套流程走下來收獲遠(yuǎn)大于直接照著demo敲一遍。技術(shù)選型是工具業(yè)務(wù)理解才是核心。校園生活信息平臺本質(zhì)上做的是一件事把信息以合適的結(jié)構(gòu)展示給需要的人。想清楚了這一點(diǎn)用SpringBoot還是其他的框架用Vue3還是其他前端方案都只是實(shí)現(xiàn)路徑的選擇。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷丁香六月| 午夜福利精品| 五月丁香婷婷色| 999久久久久久久久| 六月激情婷婷| 人妻一二三区| 激情另类激情| 国产人妻精品一区二区三区秋霞 | 色综合久久88色综合久久天天| 99re热| 国产高清在线观看欧美| 国产h小视频在线观看免费| 91欧美丝袜| 白丝1区2区3区| 日韩欧美性吧婷婷乱伦大香蕉| 伊人991| 九九色逼| 国产一区在线观看无码AV| 国产精彩女在线观看视频| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 色综合色| 欧美日韩国产色图在线| 人人操人人色网| 亚洲图片视频小说| 色香91| 99国产精品在线观看| 中文字幕亚洲永久精品| 91欧美经典| 欧美国产一区二区三区麻豆传媒| 激情婷婷丁香| 婷婷激情五月天小说网| 免费观看日本操逼视频| 国产高清成人免费视频| 国产高清自拍视频| 婷婷色色五月天福利| 亚洲诱惑天堂 | 亚洲色人阁| 久久久久幕乱码| 玖玖蜜臀资源网| 国产视频一区二区免费| 欧美少妇一区二区三区| 97色色色| 国产尹人在线视频免费| 精品成人亚洲午夜电影| 久久久97| 手机看片91人妻| 亚洲情色综合| 久一区久久蜜桃| 国产熟女无套内射| 亚洲无无码αⅴ每日更新| 中文字幕在线免费观看| 嗯啊视频免费在线观看| 日韩精品在线观看网站| 播播亚洲小说亚洲| 五月香婷婷| 成年男人的天堂| 校园春色欧美色图| 欧洲综合视频| 久草成人福利导航| 亚洲成人碰碰| 女优视频第10页| 青青草九九九九九| 久久9精品视频| 日日夜夜国产综合| 无码人妻精品一区二区三区九九 | 国产 日韩 欧美一区| 超碰97人妻免费在线| 97超碰色色| 少妇天堂| 欧美精品久久久久久久丰满| 黄色片一区二区三区四区五区| 高清成年美女黄网站免费大全| 精品亚洲国产成人AV制服丝袜| 欧洲色| 爱爱动态试试看6 0秒| 欧美日韩人人精品| 久久久性少妇| 男女猛烈无遮掩视频免费软件| 秋霞网无码| 性爱免费视频成人| 人妻加勒比东京热| 99热在线不卡| 葡萄牙性视频一二区| 成全在线观看免费观看| 992这里有精品| 亚洲色图91欧美日韩| 亚洲999综合| 加勒比海人人操超碰在线| 亚洲图片激情综合另类| 天天透伊人| 激情文学小说一区二区| 狠狠超| 亚洲1区2区三区高清中文字幕| 亚洲人妻一区二区三区| 欧美视频一区二区三区| 农村女一级毛卡片| 国产日韩欧美三级片| 欧美性特| 国语精品av| 亚洲成人激情小说视频| 日韩人妻精品久久久久| 抽插亚洲无码| 美女极品一区二区三区| yazhousetuoumei| 国产精品视屏| 亚洲无码久久久久久久| 亚洲色性情三级| 亚欧美色| 最新加勒比丝袜在线| 风间由美日韩欧美久久| 9国产超碰| 久久久草成人网站久久久草成人久久久草久久久 | 国产精品久久久久婷婷二区次| 中日韩久久久| 婷婷久久综合久| 精品无码久久久久久久久果冻糖心| 亚洲日韩久久精品一区| 欧美图片色五月天| 六月婷激情福利天堂69| 久久9精品视频| 香港成人一级视频在线青青草| wwe 天天干.com| 欧美72网页| 日韩乱码Av| 久久国产精品91| 亚洲免费精品一区| 97视频7| 男生女生啊啊啊啊| 激情开心五月天| 久无码| 亚洲欧洲色情高清| 欧美综合色综合| 国产精品69久久久久久久| 91狠狠综合久久| 综合久久99| 黄视频免费| 国产福利小视频高清在线观看| 99久久久久| 国产精品小视频一区二区三区| 日本九九久久99播| 后入福利| 精品人妻中文字幕4399| 人妻少妇一区二区| 青青国产在线拍揄自揄拍| 射丝袜大香蕉| 97精品| 人人操,操人人| 人妻少妇视频在线播放| 操淫穴亚洲五月丁香| 亚洲高清综合网| 天天操夜夜操狠很操| 国产亚洲色婷婷久久99精品91| 亚洲。日韩。欧美| 床戏久久久av一区二区麻豆| 久久欲| 五月婷在线| 日本日日色视频| 91蜜桃传媒精品久久久一区二区| 亚洲精品自拍| 欧美日韩午夜精品一区二区三区| 婷婷色色五月| 欧美最大综合网| 91美女小视频| 五月综合婷婷久久网站| 亚洲熟久久| 中文字幕在线免费观看| 97人肏| 中文字幕乱偷人妻久久艾草网| 97精| 99热自拍| 亚洲久久东京热一二三四五区视频| 欧美成人贴图| 殴美在线AⅤ| 大香蕉中文aV在线| 亚洲av青草久久一区二区| 国产麻豆一级精品视频| 新视频sss国产| 人妻性爱一区二区| 精品人妻1237| 91精品人妻偷情| 黑丝少妇在线观看| 超碰吊日色| 岛国艾薇凹凸视频天堂| 欧美综合 站| 强奸乱伦免费网站| 91麻豆天美传媒HD| 无码久久国产| 免费的av网| 熟妇女伦乱视频| 日日碰狠狠添天天爽超| 粉嫩av一区二区三区四季| 先锋影音av先锋一区| 精品久久一区二区三区四区五区| 天天欧美| 97 亚洲 日韩 欧美 在线| juliaann欧美丝袜办公室| 999国产精品999| 中文子幕一二三| 欧美aa一级片| 久久人妻无码毛片A片麻豆| 国产丝袜欧美在线视频| 熟妇高潮一区二| 国产午夜精品理论片一二三区区| 色超碰综合| 无码操逼网| 欧美玖玖爱免费玖玖| 91c色| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产一区二区三区不卡手机在线| 日韩性爱啪啪视频| 青青草色插素人| 校园春色 欧美| 97人肏| 日本不卡一区| 亚洲青色欧美| 操逼网免费无码视频| 欧美日综合| 亚洲天堂,男人| 国产一级高清免费观看| WWW.加勒比人妻一区不卡.com| 成人自拍三级在线观看| 久久久一区二区| 探花激情视频| 日本不卡二区| 嗯嗯啊啊的视频| 久热无码| 正在播放国产精品一区| 久热精品在线| 亚洲另类久操网| 一级黄色性爱A级片| 亚洲区限制级 99| 婷婷激情五月综合| 亚洲黄色视频在线观看视频| 精品女同一区| 亚洲不卡不卡中文字幕不卡| 成人a级高清视频在线观看| 熟女91网| 99久久综合| 欧美特大黄一级片片免费| 欧美在线91| 夜夜 中文视频rt| 在线播放成人网站| 国产乱伦亚洲| 少妇久久久久久久久| 亚洲淫乱骚妇AV| 怡红院一区二区熟女人妻| 久草午夜| 91亚洲影视| 欧美情色贴图| 91美女在线视频| www欧美性爱| 91操熟女| 91n处女在线观看| 97这里都是精品| 9久久精品| 欧美日本中字另类在线| 黄片免费日韩| 97超碰色色| 插B在线观看| 亚洲高清内射| 国产欧美伊人| 屌色在线97视频| 欧美一级特黄淫片在线观看| 日韩极品无码B| 人人操人人操人妻人| 无码久| 蜜臀久久99精品久久综合| 果冻国产精品麻豆成人av| 手机午夜电影神马久久| 亚洲色综合| www.人人摸在线视频| 九一综合网| 夜夜嗨av午夜成人| 综合久草| 天天日天天舔东京热| 嗯啊免费视频| 日本久操视频| 99在线精品视频| 免费av大片| 亚洲国产成人精品无码专区| 91人妻中文| 亚洲国产婷婷在线播放| 欧美999| 一区二区视频在看| 日韩91网| 好涩综合| 毛片一区二区| 日语五十路和六十路亚洲国产精品| 一本大道青青| 久久99国产精品| 噜噜噜亚洲精| 国产国产亚洲一二三久久| 国产一区二区精品在线视频| 亚洲日本天堂| 欧美色图欧美| 91精品人妻| 天天综合网在线观看| 青娱乐妇女性生活| 97欧美| 极品销魂美女一区二区| 八人操人人摸人人看| 无码WWW免费视频网站| 美国一区二区三区视频| 人妻日日干| 国产精品免费美女视频| 日韩啪啪网| 可以免费观看的AV| 欧美性后入| 性爱AV天堂| 欧美熟女丝袜| 大香蕉日韩| 精品人妻一区二区三区四区不卡在| 国产白丝av| 国产精品久久久久久久AV大片| 夜夜天天噜狠狠爱2021| 国产吞精a级片激情电影| 国产激情综合| 久久超碰亚洲人| 四虎国产成人精品免费一女五男| 天堂综合| 色欧美综合| 高清无码久操视频| 天天干夜夜一操| 亚洲成人免费电影| 色哟哟-国产专区| 亚熟hd视频在线| 欧美天天影院| 国模私拍一区二区三区神乳| 日本午夜精品理论片A级APP发布| 美女露胸露屁股| 久久超碰98| 999久久久久久久久| 亚洲男人天堂手机版| 家庭乱伦麻豆| 一区二区三区视频在线观看免费| 暖暖精品二区三区观看| 天美传媒av在线| 少妇无码999| 久久久精品91八戒| 国产 码在线成人网站| 大香蕉宅男伊人| 天天综合91入口| 香蕉国产精品麻豆亚洲欧美日韩| 丁香婷婷大香蕉| 黄色不卡视频| 国产97视频| 激情网色| 60秒试看最爽10分钟网站| 亚洲 欧美 日韩另类 麻豆| 美女天天干| 操屄不卡视频| 熟女一区二区三区| 亚洲人成在线放东京热| 国产精品高朝久久久久久久| 日韩一级欧美一级国产一级台湾| 国产亚州高清国产拍精| 啊啊啊啊啊啊好湿好爽视频| 欧美天天综合网| 亚洲四虎熟女精品| 伊人991| 少妇综合网| 久久肏大逼| 亚洲黄日韩无码专区| 激情综合 婷婷五月 红杏| 国产精品视频麻豆入口| 国产专区路线| 啊啊啊啊啊啊在线观看| 久久婷婷五月天| 97超碰色中文字幕| 91c色| 91总综合网| 天天综合网网欲色| 亚州少妇| 97国产超碰| 97综合在线| 久热99999| 淫荡少妇免费| 综合网亚洲1| 亚洲色色探花| 99色骚| 日本性交操一区二区不卡系列| 精品夜夜澡人妻无码| 91色亚洲| 色一情一乱一乱一区91Av| 久久9免费视频| 婷婷AV一区二区三区| 91无摭挡| 一级免费啪啪片| 97天天插| 免費黃色視頻觀看一| 加勒比久久av| 久色网| 香蕉久久国产AV一区二区| 国产AV天美传媒一区二区三区 | 99少妇| 婷婷精品| 久久久999| 天天干天天日天天射黄色大片| jazzjazz国产精品麻豆| 日本黄色裸日本黄色裸体| 人妻丰满熟妇一区二区三| 精品乱码久久久久| 亚洲一本大道中文字幕无码在线| 欧美亚洲清纯| 久久五月份| 碰碰97| 超碰精品| 日本中文字幕在线视频| 超碰97COm中文| 亚洲日本男人天堂网| 日韩黄色片子| 超碰在线1234区| 五月天综合网| 欧美成人一级麻豆| 少妇第一页| 色五月婷婷久久| 99re在线| 亚洲色图欧美色图制服诱惑| 激情五月天色播| 人妻一区二区三区视频| 大香蕉人妻久久| 人人污日韩一区二区| 色噜噜精品一区二区三| #NAME?| 免费精品福利在线观看| 在线人成亚洲视频免费观看| 骚熟女AV网| 18一区二区三区| 日日操丁香五月天| 五十路熟女人妻一区二区在线观看| 熟啊v色欧美热| 国产伦乱91| 欧美色www亚洲国产阿娇要播| 97丝袜亚洲在线播放| 大香蕉啪啪网| 强奸乱伦亚洲第一页| 欧美偷拍| 99re在线视频国产| 三级片大波波| 成视频在线观看免费看| 久久亚洲AV无码专区国产精品 | 亚洲凸凹超碰成人| 久久大香蕉手机高清视频| 日韩 欧美 视频 在线 一区| 亚洲欧美日韩制服另类| 欧美欧美少妇| 久久久少妇诱惑精品视频| 久久久久久久久久久97| 黄aaaaaaaaaaaaaaaaaa色网站| 亚洲欧美高清无码| 91熟女网| 91视频女生| 麻豆激情综合| 97国伦国色| 人妻啊啊人妻啊| 色爱三区| 国产精品久久久无码AV网站| 日韩高清黄片| 国语av狠狠色丁香婷婷综合激情| 传媒在线观看一区二区三区| 成人一级二级| 加勒比伊人影院| 婷婷情色五月天| 综合网,亚洲,欧美| 9九九九九视频在线观看| 五月综合婷婷久久网站| 亚洲国产一区二区入口| 久久黄片国产一区二区| 尤物av网站免费在线播放| 揉揉日日日日| 丰满人妻-区二区三区免费看| 北野未奈加勒比av| 综合色久欲| 亚洲高清少妇| 欧美色日| 操老熟女AV| 少妇丝袜在线观看AV| 亚洲激情天堂网| 亚洲日韩青青草色月| 91人人爽人人爽| 操人妻少妇中文| 蜜臀久久99精品久久综合| 日本三级久| 丝袜熟女2P| 亚洲情色第一页| 久久超碰爱| 一本一道人妻久久一区二区三区| 天天肏美女| 综精品久久久aaaa| 97人亚洲综合字幕| 新精精品久久精品| 国产日产欧产美韩系列麻豆免费| 人妻丰满熟妇av无码区蜜桃| 乱人乱色一区二区三区免费| 欧美宗合色| 午夜精品久久久| 亚洲一区日韩精品中文字幕| 欧美十八禁视频| 国内偷自视频区视频综合| 91精品人妻一品二品三品| 91女日逼| 人妻三级在线中文字幕| 亚洲无线码欧洲精品区别| 亚洲欧洲日韩天堂av| 欧美顶级黄色大片免费| 91性高潮久久久久久久久| 丁香五月偷拍| 少妇同性| 国产精品高朝久久久久久久| 野狼福利社区| 涩涩涩综合| 欧亚在线视频| 精品91摸| 加勒比久久av| 黄片www视频免费| 夜夜天天噜狠狠爱2021| 深爱五月婷婷| 亚洲少妇色图自慰直播| 国产又粗又长又大的视频| 成人线上超碰| 午夜欧美女人操逼| 男人天堂.AB| 色爽——AV| 久久精品熟妇丰满人妻99| 大香蕉免费3| 日韩国产中文字幕| 老熟女区| 九九操久久国产免费视频| 翔田千里无码一区| 色色色999| 四虎884a| 日本色日夜干| 亚洲制服欧美另类内射| 亚洲AO在线| 亚洲丝袜二区在线| 性爱Av免费| 综合色图亚洲欧美| 一级免费精品| 岛国大片国产| 91亚洲不卡一区| 天天爽入口| 最新日日夜夜天天干干| 日韩三级久久久| 97久久国产亚洲精品超碰热| 自拍内地三级在线观看| 日韩AV片| 日韩天天综合| 草草网站影院白丝内射| 区一二区日韩亚洲乱码av电影| 亚洲图片小说欧洲| 在线观看亚洲专区| 欧美成年人性爱视频免费观看| 国产大学生高潮在线播放| 欧美日韩国产男人| 亚洲精品一区二区日本| 色爱综合网| 二级毛片| 久久久久成人亚洲国产| 97一本大道亚洲一区| 国产美女高潮| 青青草视频这里只有精品| 欧美日韩精品久久久久东北老熟妇| 大香蕉www.超碰| 99999精品成人| 超碰78| 人妻久久久久久久久久久久久久久 | 成视频在线观看免费看| 综合天天。| av网页一区二区三区| 日日A∨| 精品国产Av无码久久久亚洲| 内射中出日韩在线观看视频| 超碰色综合| 五十路熟女人妻一区二区在线观看| 人人插人人搞人人操| 美女91色黄18| 国产色呦呦| 蜜桃狠狠色伊人亚洲综合 | 亚洲AV成人无码一二三久久| 熟妇熟女一区二三区| 色吧91| 九久9热| 国产粉嫩蜜臀av一区二区三区| 欧美日韩情色一区二区| 啊啊啊啊啊在线| 免费看美国人人爽,人人操| 97综合国产| 国产原创精品| 久久性生大片免费观看性| 亚洲综合在线高清| 国产美女裸体秘 永久无遮挡| 亚洲区限制级| 午夜福利视频在线一区| 大香蕉99re| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 日韩精品影视| 天天干天天狼在线视频| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 操逼逼福利视频| 久久熟女嫩草成人片免费 | 91丨豆花丨熟女| 是还免费视频1727我| 亚卅熟女乱色| 天天综合网91| 美欧老女人97| 国产99 中文字幕日韩小视频| 久久婷婷成人综合色怡春院| 蜜桃精品一区二区三区ww| 日韩99精品视频综合区| …中文字幕亚洲乱,97人妻无码费视…| 97碰在线视频| 国产肏逼网站| 啊啊啊啊啊舒服| 亚洲色图超碰在线| 乱伦图av| 野狼福利社区| 欧美综合 站| 这里只有精品久久| 另类小说综合网| 欧美丝袜91| 青青草在线视频欧美| 高清在线偷拍自拍视频| 激情小说日韩无码| 黄站在线免费观看| 日本精品88888888| 国产久久久久久久久一区二区| 日本一道在线播放高清| 国产AV线| 97日视频| 男人亚洲91首页在线| 啪啪AV导航| 人妻久久一区二区三区 | 91爱欧美| 精品无吗久久| 天天日夜夜爽| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 午夜啊啊| AV色五月天| 国产日韩精品一区二区三区| 色99视频| 中国女人内射6XXXXX| 国产精品人妻无码久久久老鸭窝| 91M一社| 综合欧美日韩在线| 欧美18禁91| 久热99| 在线v中文字幕一区二区三区| 国产主播福利| 日本不卡在线二区三区| 亚洲激情深爱文学小说网站| 色综和网| 1区2区3区中文字幕日韩| 95人妻爽爽人人做人人澡| 在线可观看的黄色网址| 国产专区第一页| 成人26uuu| 国产一区二区三区高清视频| 欧美日韩另类激情图片| 综合熟妇一区二区三区| 国内成人圈中文字幕无码视频| 啊啊啊啊啊好大好舒服想要| 欧美熟妇人体| av情色影音| 91女在线观看| 天天操av懂色| ′ !γ}丶。。久久精品欧美一区二区三区| 日韩中文字幕视频在线观看| 啪啪啪精品视频| 国产精品嫩草影院免费| 亚洲蜜乳av| 女人被男人桶爽视频网站| 国产成人无码a| 成人性爱AV在线免费观看| 一级做a爰片性色毛片久久| 精品人妻中文字幕高清| av毛片aaaaa免费看| 国产一级内射高清视频| 国产91影院| 午夜国产综合视频在线观看 | 亚洲无码一区成人免费午夜| 男人的天堂99| 久久久四区| 永久免费观看的毛片的网站| 亚洲 暴爽 AV人人爽日日碰| 国产毛片毛片4p懂色| 搡老女人911熟妇老熟女| 操国产逼| 手机在线播放国产福利| 美中日韩无码| 五月天激情影院| 五月色综合| 爱爱动态120秒| 97干日韩| 夜夜国产一区| 色哟哟AV| 日日夜夜免费| 26uuu成人影片| 亚洲第一精品在线视频| 男人的天堂一区三区| 97干在线视频| 九九毛片这里只有精品| www.高清无码诱惑一区.com | 色臀AV| 麻豆国产97在线| 国产一级不卡在线观看| www久久99| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 人妻无一区二区三区| 日本一级婬片试看三分钟| 在线无码操| 熟妇人妻精品一区二区视频色欲| 午夜成人福利影视| 蜜桃狠狠色伊人亚洲综合 | 竹菊一区二区三区AV线| 日本成a人v网站在线观看| 日韩黄片视频试看| 丝袜大香蕉| 秋霞男人网| 性欧美第一页| 沈阳熟女高潮对白视频| 亚洲黄网在哪免费看| 99热这里只有精| 九九av| 亚洲天堂精品日韩电影| 美女国产一区二区久久| 精品国产自在在线99| 麻豆天美在线喷水AV| 搡老女人老熟女91老熟女综合网| 欧美日韩黄片精品在线| 日本九九九九| 操死我了嗯嗯嗯| 麻豆AV一区二区天美传媒| 天天操夜夜操狠很操| 亚洲色吧网| 97国产精品久久久久| 试看日韩黄片| 99久久99久久综合| 91天射| 成人羞羞视频国产| 日本中文字幕在线视频| 殴洲老熟女| 高清孕妇孕交| 久久久久9| 九九热精彩视频| 1769一区| 久久精品欧美一区蜜桃| 日韩无码服务区| 亚洲精品国产无码高清| 夜夜爽77777| 女人18精品一区二区三区| 日本熟女免费視颖| 另类亚洲图色| 色图综合网| 99综合| 99热线麻豆 | 超碰在线人人射| 久热这里| 欧美日韩亚洲少妇寂寞影院正在播放 | 天天干人人看综合| 丝袜 亚洲 偷拍| 激情婷婷黑人91| 国岛片视频| 99黄页网站| 日本韩国国产精品一区| 懂色AV一区二区三区| 超碰97日韩| 久操大香蕉| 91中出在线| 亚洲福利中文字幕在线| 久久久久久裸体| 中文字幕aⅴ在线视频| 亚热日本熟女| 人人操人人摸人人看人人干| 国产伦精品免编号公布| 91精品操美女| 新久久AV| 97视频在线免费播放| 亚洲精品人妻在线| 中文字幕女同在线| 无遮挡一级毛片视频免费的| 久久e6只有精品| 亚洲āv网址在线观看| 亚洲精品一二三四区| 一区二区三区美女超清| 91人妻视频| 久久久久久久久久久免费精品| 啊啊啊啊二区好大| 亚洲一曲日韩精品| 九九九九一级| 欧美十八禁在线看| 大香蕉人妻久久| 精品国产一区二区三区av在线资源| 久操免费观看| 99久久这里只有精品| 操逼A∨| 97看操| 国产午夜无码片在线观看影视 | 亚洲综合九| 色爱三区| 九热中文字幕| 一区二区 电影 亚洲| 在线一道啪| 91欧| 久久久一热在线播放| 久久久精品网| 青青草啪啪网| 国模少妇一区二区三区 | 亚洲男人天堂视频| 天天综合91在线| 人人操人人插 - 百度 - 百度| 久草在| 伊人久久婷婷| 蜜乳AV免费观看| 久久久一区二区| 嗯啊不要在线| 超碰国产精品久| 欧美在线亚洲| 超碰精品| 五月婷色| 国产日产精品久久快鸭的功能介绍| 青青草一区二区三区四| 欧洲天天在线| 亚洲第一狼人丝袜美女另类 | 亚洲黄色| 久久久久亚洲精品| 久草五月| 国产精品人妻熟女aⅴ| 中国少妇啪啪视频| 欧美 日韩 另类 亚洲| 中文字幕在线免费观看视频| 妇女性内射冈站HDWWWCOM| 超碰偷拍| 一区二区三区无卡视频在线观看| 丁香啪啪| 中文字幕日韩人妻视频一区二区三区| 先锋女优在线观看视频| 色天堂在线观看| 搡老女人老妇女老妇老熟女怎么读| 男人高清无码一区二区| 97操| 中文字幕一区二区三区四五区| 欧美一二在线| 91久久国产综合久久| 日韩av一级黄片| 精品美女久久久久| 99re视频这里只有精品| 999熟女精品| 亚洲日韩青青草色月| 9Ⅰ超碰| 国产AV人人夜夜澡人人爽麻豆| 大香蕉免| AV天天在线观看| 爱做久久久久久| 国产精品极品美女视频| 最近2018中文字幕在线高清第一页| 久久久亚洲熟妇资源| 久久熟女久| 99re在线观看| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 激情黄色片在线观看| 啊啊啊啊免费视频| 校园春色家庭伦理欧美激情| 超碰综合色| 欧美高清性猛交| 欧美乱色| 亚洲 91 在线| 久久午夜伦| 99在线观看| 天堂8在线新版官网| 亚洲第一黄色av网站| 亚川综合视频| 草莓精品视频在线免费观看| 亚洲AV无码秘 蜜桃臀国精产品| 男人的天堂va在线| 狠狠色五月亚洲91| 狠狠97| 熟妇一区,二区,三区。| 亚洲人精品午夜不卡| 十八禁一区二区无码观看| 欧美 熟女 日韩| 天操老女人| 欧美国产一区二区三区麻豆传媒| 国产精品91ai| 97精品第3页| AV99热18这里只有精品| 欧美国产有色电影| 69久久久久久久久久久久久| 日韩精品电影| 91国产丝袜美女| 热久久无毒不卡| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 爱爱久久| 91精品久久久久久77777| 啊啊啊好疼| 亚洲熟女一区二区| 亚洲一区二区av| 91欧美综合| 日韩成人无码| 91精品久久久久五月天精品| 美女尤物人人操| 国产成人无码高清| 丁香六月啪啪| 亚洲天堂人妻一区二区| 天天香香欲综合| 日韩丝袜高跟制服在线观看| 久久精品日韩专区免费观看| 91情色在线| 国产成年女黄特黄| 国产精品美女久久久久AⅤ国产馆| 色色福利| 色婷婷丁香五月| 中文字幕少妇色| 96久久久精品| 日韩精品一二三| 狠狠久久手机视频精品| 人妻一区视频| 狠狠操狠狠爱| 久久国产精品,久久国产| 亚洲drav色图| 精品人妻一区二区三区鲁大师| 亚洲欧美第一页| 欧美 日韩 亚洲 春色| 极品极品色影院| 久久亚洲影院一区二区| 欧美中文狠| 国产精品乱码久久久久久久久| 久久久久9999| 日本人人操人人操| 久久亚洲影院一区二区| julia中文字幕在线观看| 中文字幕乱妇免费视频| 99久久精品欧美国产| 91精品国产麻豆国产自产在| 男人下部插入女人下部| 蜜桃狠狠色伊人亚洲综合 | 日韩素人无码一区二区三区三州| 午夜福利区| 粉嫩av一区二区三区天美传媒| 精品成人无码| 激情深爱五月天| 亚洲涩涩| 97国产精品| 久久精品国产免费观看99| 亚洲男人的天堂V| 亚洲中文字幕久久无码精品| 无码操逼视频一下| 99热在线播放| 久久久国产精品亚洲精品| 啊啊啊啊啊在线| 日本一本道A级黄色毛片试看60分钟| AV天天在线观看| 粉嫩久久久极品| 久久久久久久九九九九九九| 天天干,夜夜爽| 美女丝袜激情小说| 国产精品视频91久久| 99热综合| 超碰在线综合97| 变态乱伦伪娘灌肠一区二区| 天天看少妇| 久久久九| 日本一区二区三区四区免费观看| 91视频观看网站| 天天综合青苹果| 日韩成人大片一区二区| 神马久久久久久久久久| 好色综合| 99操逼| 久久久96精品| 成人性爱视频在线看| 午夜福利久久久噜久噜久久综合| 亚洲色婷婷综合久久久久中文| 国产h片在线观看视频| 国产一级久久久| 91搡老女人老妇女老熟女歌词翻译| 自偷自拍的亚洲视频| 大香蕉琪琪日本女优不卡| 一级乱伦网站| 久无码| 97日韩| 久久,精品一二三| 欧美九九九| 久久婷婷色| 午夜噜噜噜| 伊人婷婷五月天| 99精品无码| 新版天堂中文资源8在线| 啊嗯嗯啊好大好爽| www黄片免费看com| 丰满人妻一区| 欧亚乱色熟女一区二区| 天欧美在线| 国产视频一区二区免费| 国产怡红院在线| 日本福利二区视频| 99热欧美| 欧日韩不卡视.频| 人妻铁牛TV| 91在线美女| 国产福利一区二| 国产超碰在线一区| 国产极品精品美女视频| 9999亚洲精品| 亚洲日韩成人性爱视频| 综合欧美色图| 日本三级韩三级99久久| 婷婷婷婷婷婷久久久久| 亚洲色图欧美色图制服丝袜| 亚洲av国产av综合av卡| 成人熟女区| 五月天婷精品激情| 理论久久婷婷网8| 欧美午夜精品久久久久久3D| dy888午夜老子影视达达兔| 国产农村妇女精品一| 人人看欧美性爱| 四虎884| 超碰调教97| 无码外流操逼视频| 婷婷激情五月综合| 中文字幕 码 自拍 视频 区| 日本人妻最新在线中| 性生活无遮挡纯毛片在线看| 欧美性爱视频免费一区一A| 国产精品久久久亚洲第一牛牛_在线观看 | www.色操逼| 亚洲欧美人妻| 91丝袜熟女| 中文字幕在线观看视频www| 一起草三级AV电影在线观看| 东京热不卡视频| 99九九久久| 日本韩国国产精品一区| 十八禁电影伊人网| 国产在线76页| 无码天天操| 欧美丝袜中文字幕07在线| 欧美日韩资源在线| 3D污黄视频在线观看| 久久久人妻| 激情综合网一盗摄| 欧洲天天在线| 欧美成人一级免费电影| 欧美综合天天| 日韩熟女视频二区| 色女女女导航| 97摸视频| 在线播放成人高清免费视频| 97中文字幕一区| 欧美午夜色妇色鬼| 久99热| 欧美日韩日产免费网站看| 亚洲熟女av中文字幕| 龙兴卡官方查询| 射丝袜高跟鞋99| 激情丁香婷婷| 丰满人妻一区二区三区四区| 9118禁| 97在线观看免费| 黄总AV色图| 香蕉久久国产AV一区二区| 无码国产Av| 1769成人国产精品视频| 青青草五月份天| 色九九九综合| 午夜精品99久久久久传媒| 国产一区二区三区影片| 欧美天天干| 免费观看成人www精品视频| 78精品在线| 99re在线视频这里只有精品 | 91久久国产综合久久| 欧美成人性爱视频大全| 久久久久久久六六| 亚洲AV无码| 男人的天堂2010| 三级片网站在线播放| www.91理论| 777琪琪午夜免费A片| 国产精品久久| 五十路三区在线| 97久久超碰国产精品| 亚洲日韩东京热一区| 美腿丝袜高跟网免费视频免费视频| 天美av在线观看| 丁香六月婷婷久久综合| 免费看一级a性色生活片久久无| 国产AV毛片| 久久青青草原免费视频| 欧美夜夜草视频| 亚洲av青草久久一区二区| 久久黄人人爽视频| 九九热av| 成人国产二区三区在线,男女精品。| 婷婷激情五月综合| 九一国产精品| 9999久久久久| 蜜臀av网址| 精久久久| 欧美综合自拍亚洲综合图| 欧美在线|亚洲| 一二视频神马久久传媒| 人妻熟女一区二区| 成人一级二级| 欧美一区二区三熟女剧情| 欧美综合狠| 熟女久久| 97超碰精品图片| 精品国产乱子伦一区二区三区,精品一| 乱操乱伦AV| 97视频观看| 99久久com免费视频′| 色色99| 农村妇女一级二级三级视频| 一区二区偷拍拍视频| 亚洲色吧网| 清纯唯美激情四射| 97天天综合网| 97超碰久久色| 亚州欧美综合| 啊啊啊啊嗯嗯在线久久久| 9丨久久九九九| 91这里只有精品| 亚洲AV成人无码一二三久久 | 亚洲天堂资源在线| 亚洲97在线观看| 婷婷操视频| 波多野结衣一级视频| 日韩人妻中文视频| 九九aV| 久久天天摸| 亚洲一本色码中文字幕| 97超碰总站| 亚州黄站| 亚洲av青草久久一区二区| 另类TS人妖一区二区三区 | ,成人免费啪啪视频| 黄片免费久久久久久久| 国产精品亚洲美女久久久久| 亚洲春色激情小说| 884t在线| 老鸭窝成人| 亚洲综合欧美| 亚欧成人综合影院| 久久丁香五月天| 蜜臀亚洲中文| 欧美日韩97在线| 啊啊啊啊啊啊啊啊视频| 亚洲啪AⅤ永久无码| 亚洲欧美国产日本一区二区三区| 91neishe| 夜夜 中文视频rt| 精品69网| 久操凹凸视频| 黑丝少妇在线观看| 韩日巨乳美女免费视频在线观看| 国产农村妇女毛片精品久久| 久久性爱视频99| 亚洲欧美经典一区二区| 婷婷五月天久久精品视频一区二区三区 |