免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

SpringBoot+Uniapp校園圈全棧實戰(zhàn):從數(shù)據(jù)庫設計到跨端部署

SpringBoot+Uniapp校園圈全棧實戰(zhàn):從數(shù)據(jù)庫設計到跨端部署 簡介移動互聯(lián)網時代社區(qū)類應用的開發(fā)模式正加速向前后端分離架構演進。前后端分離不僅讓后端通過RESTful API統(tǒng)一輸出數(shù)據(jù)也借助跨端框架讓一套業(yè)務代碼同時覆蓋小程序、App與H5。SpringBoot以其成熟的生態(tài)和快速構建能力成為服務端實現(xiàn)的首選框架之一而Uniapp則為多端適配提供了高效的編譯方案。當校園生活場景中的二手交易、失物招領、表白墻等信息需求被聚合時一套基于統(tǒng)一內容表與擴展表設計的數(shù)據(jù)庫結構能支撐多模塊共存并減少重復開發(fā)。結合Redis緩存、JWT鑒權、敏感詞過濾等工程實踐可顯著提升系統(tǒng)的安全性與響應性能。本文以校園圈項目為實例完整拆解從數(shù)據(jù)庫建模到SpringBoot接口開發(fā)、Uniapp多端適配及線上部署的全鏈路關鍵技術為社區(qū)類應用的開發(fā)與二次擴展提供可直接落地的參考。 從校園墻到完整生態(tài)SpringBoot Uniapp 前后端分離校園圈項目的全鏈路拆解每年開學季和畢業(yè)季校園里的信息需求都會迎來一波爆發(fā)——有人找失物、有人出閑置、有人想表白、有人找課友這些零散的需求過去都貼在宿舍樓下的公告欄或者分散在幾十個QQ群里。一個能把這些場景聚合起來的校園圈子看起來只是論壇 集市 表白墻的功能拼接但真正動手做起來涉及到的用戶體系、內容審核、跨端適配和部署上線每一步都有不少坑。我花了大半個月基于 SpringBoot Uniapp 完整實現(xiàn)了一款前后端分離的校園圈項目覆蓋校園集市、表白墻、論壇、失物招領、校園墻、跳蚤市場六個核心模塊附帶了完整的數(shù)據(jù)庫設計。這篇文章不打算復述項目里每個文件的作用而是想把這套系統(tǒng)的設計邏輯、關鍵代碼實現(xiàn)、以及我在開發(fā)中踩過的坑講清楚希望能給正準備做同類校園社區(qū)項目的同學提供一份可以直接參考的實操經驗。1. 這個校園圈項目解決了什么問題以及為什么選這套技術組合1.1 校園場景的信息需求到底有多碎片化在動手寫代碼之前我先梳理了校園用戶的真實使用場景。校園里的信息需求有鮮明的周期性開學季是二手書和宿舍用品的交易高峰考試周是資料拼單和課友招募的集中期平時則是失物招領和活動組隊的常態(tài)需求。這些場景過去分散在QQ群、微信群、貼吧和公告欄里信息發(fā)布沒有分類、沒有審核、沒有沉淀一條重要的尋物啟事發(fā)出去幾分鐘就被聊天記錄淹沒。校園圈這類項目的核心價值不是做一個大而全的社交平臺而是把校園內的高頻信息需求集中到一個有分類、有審核、有沉淀的社區(qū)里。集市對應交易需求表白墻對應情感表達需求論壇對應話題討論需求失物招領對應緊急求助需求——每個模塊的用戶心理和使用頻率都不一樣這就意味著后端不能只做一個通用的內容發(fā)布接口而是要針對不同模塊設計差異化的業(yè)務規(guī)則。1.2 選型時我對比過的方案以及最終決定的理由校園圈項目的技術選型我在動手前對比了三套主流方案。第一套是傳統(tǒng)的 SSMSpring SpringMVC MyBatis配合服務端渲染模板比如 JSP 或者 Thymeleaf。這套方案的優(yōu)勢是結構簡單、學習曲線平緩非常適合課程設計但問題也很明顯前后端耦合嚴重移動端適配基本靠響應式 CSS 硬撐做出來的體驗和原生 App 差距很大。第二套是 SpringBoot 做后端、Vue 做 Web 管理端、再單獨用 Android 原生開發(fā)移動端。這套方案的體驗最好但開發(fā)量直接翻倍一套業(yè)務邏輯要分別在 Web 端和 Android 端各實現(xiàn)一遍對于個人開發(fā)者或者小團隊來說維護成本太高。第三套就是最終選定的 SpringBoot Uniapp 前后端分離方案。后端統(tǒng)一提供 RESTful API前端用 Uniapp 一套代碼編譯到 H5、微信小程序和 Android App 三個平臺。對于校園圈這種以移動端為主的場景Uniapp 的跨端能力可以把開發(fā)效率提升一倍以上同時 SpringBoot 的生態(tài)非常成熟做權限控制、文件上傳、定時任務這些通用能力都有現(xiàn)成的方案可以集成。從實際效果來看這個組合的收益非常明顯我的業(yè)務代碼只寫了一套卻同時覆蓋了學生最常用的微信小程序和 Android App還順手把 H5 版本跑通了用于 PC 端管理。如果當初選了原生開發(fā)同樣的時間最多只能完成一個平臺。1.3 項目整體模塊劃分與信息流方向整個系統(tǒng)的功能模塊可以按照信息流向分成三個層面。用戶層是基礎包含微信授權登錄、手機號綁定、個人資料管理這一層為所有業(yè)務模塊提供統(tǒng)一身份體系。內容層是核心校園集市、表白墻、論壇、失物招領四個模塊各自獨立但底層都依賴統(tǒng)一的內容管理服務包括發(fā)布、編輯、刪除、審核、評論、點贊這些通用能力。運營層是保障包括管理員后臺的內容審核、用戶禁言、分類管理、數(shù)據(jù)統(tǒng)計等功能。從信息流方向來看用戶在小程序端發(fā)布內容請求通過 API 進入后端后端完成身份校驗、內容合法性校驗敏感詞過濾、圖片鑒黃、業(yè)務規(guī)則校驗比如集市商品的分類和價格格式寫入數(shù)據(jù)庫后進入待審核或直接發(fā)布狀態(tài)。其他用戶看到內容后可以進行評論、點贊、收藏等互動操作。管理員在 Web 管理端可以查看所有內容、處理舉報、下架違規(guī)內容。這套設計的好處是六個業(yè)務模塊共享了同一套底層能力新增一個模塊時只需要配置分類和業(yè)務規(guī)則不需要從零開發(fā)一整套接口后續(xù)如果要擴展課程資料分享、拼車、組隊等新場景成本會非常低。2. 數(shù)據(jù)庫設計六個功能模塊如何在一套表結構下共存2.1 用戶、內容、互動的三核心表設計數(shù)據(jù)庫是整個項目的根基我一開始就明確了設計原則所有業(yè)務模塊共享一套用戶體系所有內容模塊共享一套內容表互動數(shù)據(jù)評論、點贊、收藏也統(tǒng)一處理。這種共性下沉、個性上浮的設計能最大程度避免每新增一個模塊就新建幾張表的窘境。核心的用戶表t_user設計如下id主鍵自增長openid微信小程序登錄后的唯一標識只在微信登錄時用到字段上建立唯一索引phone手機號用于綁定和找回賬號nickname昵稱默認為微信昵稱avatar頭像地址role角色標識0 普通用戶1 管理員status賬號狀態(tài)0 正常1 禁用create_time、update_time時間字段所有表都有這兩個字段便于排查問題內容方面我沒有為集市、表白墻、論壇、失物招領各自建一張內容表而是設計了一張統(tǒng)一的內容表t_contentid內容IDuser_id發(fā)布者ID關聯(lián)用戶表type內容類型1 集市2 表白墻3 論壇4 失物招領title標題集市商品名、論壇帖子標題、失物招領物品名content正文內容images圖片地址多個圖片用逗號分隔price價格字段僅集市和跳蚤市場使用其他類型為 0category分類信息比如集市里的數(shù)碼產品書籍教材生活用品contact聯(lián)系方式方便用戶直接溝通status內容狀態(tài)0 待審核1 已發(fā)布2 已下架3 已刪除like_count、comment_count、view_count互動計數(shù)冗余存儲避免每次統(tǒng)計都去查互動表location失物招領模塊的地點信息通過type字段區(qū)分業(yè)務模塊用status字段控制內容的生命周期用category字段做模塊內的細分。這套設計讓六個模塊共用一套內容查詢邏輯分頁列表、詳情查看、內容審核都只需要寫一套服務大大減少了重復代碼?;臃矫嬖O計了t_comment評論表和t_like點贊表。評論表記錄評論內容、評論者、所屬內容 ID 和父評論 ID支持樓中樓回復。點贊表的核心設計是防止重復點贊——user_id和content_id建立聯(lián)合唯一索引從數(shù)據(jù)庫層面保證一個用戶對一條內容只能點贊一次。2.2 失物招領的獨特狀態(tài)機設計失物招領模塊和其他內容模塊有一個本質差異——它有明確的完結流程。一個失物招領發(fā)布后可能的狀態(tài)包括尋找中、已找到、已認領、已撤銷。如果簡單復用統(tǒng)一內容表的狀態(tài)字段無法表達這種業(yè)務流轉。我的處理方式是失物招領內容仍然存在t_content表中type4但額外設計了一張t_lost_found擴展表記錄該內容特有的業(yè)務屬性content_id關聯(lián)內容表 IDitem_name物品名稱lost_or_found類型0 尋物1 招領location丟失或拾取的地點status0 進行中1 已完成2 已撤銷complete_time完成時間這樣既保留了統(tǒng)一內容表帶來的查詢便利又能針對失物招領做特殊業(yè)務處理。前端列表頁展示時根據(jù)lost_or_found字段區(qū)分展示尋物啟事和失物招領兩種卡片樣式詳情頁里如果狀態(tài)是已完成就展示完成時間和感謝語讓整個流程形成閉環(huán)。同樣的思路也應用于集市模塊。商品上架-賣出下架-重新上架的狀態(tài)流轉通過t_content.status字段加集市擴展表t_market_item的sold_status字段組合實現(xiàn)這樣的設計避免了對統(tǒng)一內容表的頻繁狀態(tài)覆蓋。2.3 表白墻的匿名邏輯和內容審核的關鍵實現(xiàn)表白墻和論壇有一個關鍵區(qū)別用戶發(fā)表白內容時可以選擇匿名。這個匿名不是簡單的昵稱不顯示而是要保證評論和點贊時別人看不到用戶身份但管理員在后臺仍然能看到真實發(fā)布者方便處理惡意內容。實現(xiàn)上我在t_content表中增加了一個is_anonymous字段。查詢內容列表時如果該字段為 1則返回結果中的user_id置為 0、nickname置為匿名用戶、avatar置為默認匿名頭像。這個邏輯在 SQL 層通過條件判斷實現(xiàn)也可以在 Service 層做數(shù)據(jù)脫敏處理。我選擇在 Service 層做一個公共的內容脫敏方法所有模塊查詢內容后都經過這個方法處理避免每個接口都寫一遍判斷邏輯。內容審核方面我在后端實現(xiàn)了一個簡單的敏感詞過濾工具類。維護一個敏感詞列表發(fā)布內容時先進行文本匹配如果命中敏感詞根據(jù)嚴重程度決定是直接攔截還是轉人工審核。圖片審核調用云服務商的審核 API由于校園場景的特殊性圖片審核的閾值會比通用平臺更嚴格。所有待審核內容進入管理端的審核隊列管理員可以在 Web 后臺逐條查看、通過或駁回。2.4 索引設計和使用頻率最高的查詢 SQL校園圈項目的查詢壓力集中在這幾個場景首頁信息流分頁、分類列表分頁、我的發(fā)布列表、搜索。針對這些場景我設計了幾組關鍵索引idx_content_type_status(type, status)聯(lián)合索引這是內容列表查詢最主要的索引按模塊和狀態(tài)過濾數(shù)據(jù)idx_content_user_id(user_id)索引查詢我的發(fā)布時使用idx_content_create_time(create_time)索引按時間排序的分頁場景使用idx_content_category_type(type, category)聯(lián)合索引分類篩選場景idx_comment_content_id(comment_id)索引評論列表查詢idx_like_user_content(user_id, content_id)唯一索引既保證了防止重復點贊又能支撐我點贊過的內容查詢列表頁的核心查詢 SQL 大致長這樣SELECT c.id, c.title, c.content, c.images, c.price, c.category, c.like_count, c.comment_count, c.create_time, u.nickname, u.avatar, u.id as user_id FROM t_content c LEFT JOIN t_user u ON c.user_id u.id WHERE c.type 1 AND c.status 1 ORDER BY c.create_time DESC LIMIT 10 OFFSET 0;這里用了 LEFT JOIN 獲取用戶信息。對于 10 萬條數(shù)據(jù)量級的校園項目這套查詢配合索引響應時間在毫秒級完全夠用。數(shù)據(jù)量再大的話可以引入 Redis 做熱數(shù)據(jù)緩存或者引入 ElasticSearch 做搜索但這是后話在項目初期不需要過度設計。3. SpringBoot 后端從接口設計到安全防護的完整落地3.1 項目分層結構與統(tǒng)一返回格式的定義后端工程遵循標準的 SpringBoot 分層架構Controller 層負責接口暴露Service 層負責業(yè)務邏輯Mapper 層負責數(shù)據(jù)庫操作。為了減少代碼量我引入了 MyBatis-Plus 作為 ORM 框架它的內置 CRUD 方法和分頁插件可以省掉大部分基礎 SQL 編寫。一個容易被忽略但非常重要的設計是統(tǒng)一返回格式。所有接口的返回值都遵循同一個結構{ code: 200, message: success, data: {} }前端通過判斷code是否為 200 來決定業(yè)務流程是否繼續(xù)。如果接口報錯code返回具體的錯誤碼400 參數(shù)錯誤、401 未登錄、403 無權限、500 服務器異常message返回給用戶看的提示信息。這個統(tǒng)一格式讓前端處理異常的邏輯變得非常簡單——只要封裝一個請求工具統(tǒng)一攔截非 200 的響應并彈出提示即可。分頁接口的返回格式也做了統(tǒng)一data字段固定包含records當前頁數(shù)據(jù)、total總條數(shù)、current當前頁碼、size每頁條數(shù)。3.2 JWT 登錄認證的完整流程和 Token 過期處理校園圈項目采用 JWTJSON Web Token做登錄認證。用戶通過微信登錄時后端拿著前端傳來的code去微信接口換取openid如果該openid已存在則直接登錄不存在則自動注冊新用戶。登錄成功后后端生成一個 JWT Token 返回給前端前端每次請求都在請求頭里帶上Authorization: Bearer [token]。JWT 的核心邏輯是在用戶登錄后把用戶 ID 和角色等信息加密進一個 Token 字符串里服務端不再存儲會話信息。SpringBoot 后端通過攔截器或者過濾器統(tǒng)一解析請求頭里的 Token驗證簽名取出用戶 ID 和角色存入 ThreadLocal 供后續(xù)業(yè)務代碼使用。我對比了攔截器和過濾器兩種實現(xiàn)方式最終選擇了攔截器因為攔截器可以更方便地配置放行路徑比如登錄接口、內容列表接口不需要 Token而發(fā)布、點贊、評論接口需要 Token。Token 過期處理是個經典問題。JWT 默認是把過期時間寫在 Token 里的過期后前端拿舊 Token 請求接口會返回 401。我的方案是Token 有效期設置為 7 天前端在請求攔截器里判斷如果收到 401且當前頁面不是登錄頁就跳轉到登錄頁重新授權。這個策略在校園場景下夠用用戶一般一周內會多次打開小程序不會頻繁需要重新登錄。如果需要更長的免登錄周期可以引入 Refresh Token 機制但那屬于進階設計校園項目前期不需要這么復雜。3.3 發(fā)布接口的參數(shù)校驗與圖片上傳處理細節(jié)內容發(fā)布是整個系統(tǒng)最核心的寫操作。集市發(fā)布需要校驗標題、價格、分類、描述失物招領需要校驗物品名稱、地點、類型表白墻需要校驗內容長度和敏感詞。這些校驗如果在每個業(yè)務方法里都寫一遍代碼會非常冗余。我的做法是在實體類上使用 JSR-303 注解做基礎校驗NotBlank、NotNull、Size等在 Controller 層配合Valid注解自動完成參數(shù)校驗業(yè)務方法里只需要做業(yè)務規(guī)則校驗比如集市價格必須大于 0、失物招領狀態(tài)流轉是否合法。圖片上傳也是發(fā)布功能的重要環(huán)節(jié)。前端通過 Uniapp 的uni.chooseImage選擇圖片調用后端上傳接口后端將圖片保存到服務器指定目錄返回圖片的訪問 URL。表面上看起來很簡單但有幾個細節(jié)值得注意文件類型白名單校驗只允許 jpg、png、gif、webp 格式文件大小限制單張圖片不超過 5MB用戶端在上傳前先壓縮文件名重命名不用用戶原始文件名用 UUID 或時間戳重命名防止文件名沖突和路徑穿越攻擊圖片訪問權限通過后端鑒權后生成臨時 URL 訪問防止資源被外部直接刷流量如果對安全要求沒那么高也可以直接放在靜態(tài)資源目錄下公開訪問我踩過的一個坑是 Nginx 上傳大小限制。默認 Nginx 的client_max_body_size是 1MB如果圖片傳到 Nginx 反向代理超過 1MB 的請求會被直接拒絕。需要手動把配置改成client_max_body_size 10m才能解決。3.4 點贊、評論、瀏覽計數(shù)的并發(fā)安全實現(xiàn)互動功能看起來簡單但并發(fā)場景下容易出問題。點贊的并發(fā)問題通過數(shù)據(jù)庫唯一索引已經解決了——重復點贊會插入失敗程序捕獲異常后返回友好提示即可。難點在計數(shù)更新。最初我用的是先查 count 再加一的邏輯在并發(fā)壓力下會出現(xiàn)丟失更新的問題。后來改成了數(shù)據(jù)庫原子操作// 點贊時更新計數(shù) int updated contentMapper.increaseLikeCount(contentId); // SQL: UPDATE t_content SET like_count like_count 1 WHERE id #{contentId}這種寫法把讀-改-寫變成了數(shù)據(jù)庫層面的原子操作即使同一時間有 100 個人點贊計數(shù)也不會丟失。瀏覽量的設計更簡單展示詳情時直接對view_count加一不做去重。對于校園項目瀏覽量本身就是一個營銷指標真實量級相比去重更重要。評論的并發(fā)問題相對少主要是新增評論和刪除評論時的計數(shù)同步。刪除評論時先刪除評論記錄再原子更新內容的comment_count減一。如果評論有子評論需要遞歸刪除這個操作放在事務里執(zhí)行保證數(shù)據(jù)一致性。4. Uniapp 跨端開發(fā)的適配細節(jié)與核心頁面實現(xiàn)4.1 為什么 Uniapp 一套代碼能同時搞定小程序和 AppUniapp 的原理是把 Vue 語法編寫的頁面通過編譯工具轉換成不同平臺的可執(zhí)行代碼。寫小程序時編譯成 WXML/WXSS/JS寫 App 時編譯成原生應用可運行的代碼。開發(fā)者使用 Vue 的語法和 Uniapp 提供的跨端 API底層差異由框架屏蔽。但這不意味著完全不用關心平臺差異。開發(fā)中我遇到最典型的差異是登錄方式微信小程序里的登錄是uni.login獲取code然后傳給后端換openidApp 端沒有uni.login我用的是手機號驗證碼登錄。針對這個差異我在登錄頁面根據(jù)#ifdef MP-WEIXIN和#ifdef APP-PLUS寫了條件編譯代碼兩個平臺走不同的登錄流程對外暴露統(tǒng)一的登錄成功回調。另一個典型差異是存儲。小程序端用uni.setStorageSync存 Token 是沒有問題的但 App 端如果 Token 涉及敏感數(shù)據(jù)建議使用plus.storage或者原生插件做安全存儲。因為安全等級不同我把 Token 這類敏感信息的存儲單獨封裝了一個工具類切換平臺時只改工具類內部實現(xiàn)業(yè)務代碼不用動。4.2 首頁信息流、TabBar 導航與頁面棧設計校園圈有多個 Tab首頁、集市、論壇、我的每個 Tab 對應一個獨立的頁面底部 TabBar 用 Uniapp 的pages.json配置。這里有一個設計取舍Tab 頁面之間用uni.switchTab切換而不是uni.navigateTo因為switchTab會保留頁面狀態(tài)用戶切換 Tab 后回來不會重新加載列表體驗更好。首頁信息流的實現(xiàn)走的是后端分頁接口加前端觸底加載。滾動容器用scroll-view還是頁面級滾動這里要特別注意小程序里頁面級滾動監(jiān)聽觸底用onReachBottomscroll-view里用scrolltolower。兩種方式的性能表現(xiàn)有差異我最終選擇了頁面級滾動配合onReachBottom實現(xiàn)更簡單性能也更優(yōu)。集市列表頁因為涉及商品卡片、價格展示、分類篩選我把它做成了獨立頁面沒有放在首頁信息流里。首頁信息流采用內容聚合策略后端一次性返回四種類型的內容按最新時間混合排序用戶在同一個流里能看到表白、二手、尋物等不同類型的信息符合圈子的定位。4.3 圖片上傳前的壓縮處理與跨端兼容方案Uniapp 的uni.chooseImage在 H5、小程序、App 三個平臺的參數(shù)和行為有細微差異。最常用到的參數(shù)是count可選圖片數(shù)量、sizeType是否壓縮和sourceType相冊還是相機。小程序端支持sizeType: [compressed]會自動壓縮圖片。但 App 端對sizeType的支持不一致有時傳了壓縮參數(shù)也沒效果。為了統(tǒng)一行為我封裝了自己的圖片選擇工具先調uni.chooseImage選圖拿到臨時路徑后在小程序端直接用uni.compressImage壓縮在 App 端調用plus.zip.compressImage壓縮。壓縮到 1280px 以內、質量 80%單張圖片通??梢詨旱?200KB 左右大大減輕了上傳壓力和存儲壓力。上傳時還要注意如果一次性上傳 9 張圖不要并行請求否則后端很容易收到大量并發(fā)請求導致超時。我是用遞歸的方式逐張上傳全部上傳完成后把返回的 URL 列表合并提交給發(fā)布接口。4.4 登錄狀態(tài)管理、路由守衛(wèi)和分享功能實現(xiàn)前端的登錄狀態(tài)管理我用了 Vuex 配合uni.setStorageSync持久化。用戶登錄成功后把用戶信息存入 Vuex同時寫入本地存儲。每次啟動 App在 App.vue 的onLaunch生命周期里從本地存儲恢復登錄狀態(tài)到 Vuex。路由守衛(wèi)方面小程序的頁面跳轉沒有 Vue Router 那樣的全局守衛(wèi)我封裝了一個checkLogin工具函數(shù)在需要登錄的頁面的onShow或按鈕點擊事件里先判斷 Vuex 里的 Token 是否存在如果不存在就跳轉到登錄頁并記錄當前頁面路徑登錄成功后可以自動跳轉回來。關于分享功能這里有一個很多新手容易踩坑的細節(jié)微信小程序的分享默認是分享當前頁面點擊分享卡片打開后只能打開分享時所在的小程序頁面無法直接定位到具體的表白墻內容頁。要實現(xiàn)分享帶參數(shù)的效果需要在onShareAppMessage里手動拼上內容 ID 作為參數(shù)onShareAppMessage() { return { title: this.detail.title, path: /pages/content/detail?id${this.detail.id} }; }App 端則更復雜涉及到plus.share的原生分享能力需要傳入分享圖片、標題、URL 等參數(shù)。這塊我是在后期優(yōu)化時才完善的早期只實現(xiàn)了微信小程序端的分享。5. 校園圈項目的安全防護與性能優(yōu)化實踐5.1 接口防刷、SQL 注入和 XSS 攻擊的防御策略校園圈項目雖然面向校內用戶但上線后同樣面臨各種惡意攻擊。接口防刷方面我在后端實現(xiàn)了一個簡單的基于 Redis 的限流攔截器同一個用戶對同一個接口的請求頻率1 分鐘內超過 30 次就返回操作太頻繁。對于發(fā)帖、評論這類寫接口頻率限制更嚴格1 分鐘最多 5 次。這樣能有效防止腳本大量灌水。SQL 注入方面MyBatis-Plus 的預編譯機制已經能防御絕大部分注入攻擊。需要注意的坑是如果在 XML mapper 文件里使用了${}拼接參數(shù)就會重新引入注入風險。我統(tǒng)一約定所有參數(shù)傳遞都用#{}如果確實需要動態(tài)表名或動態(tài)排序字段用白名單校驗——只允許傳入預設好的幾個值從源頭阻斷注入。XSS 攻擊是內容社區(qū)的高發(fā)問題。用戶發(fā)布內容里如果帶有script標簽或者事件屬性存儲后再渲染出來就會執(zhí)行惡意腳本。我的處理方案是后端在內容入庫前對內容做一次 XSS 過濾把、等危險字符轉義。前端展示時跑的是經過后端清洗后的安全內容。有一個教訓是初期我忽略了對images字段里的圖片 URL 做協(xié)議校驗導致可以上傳javascript:開頭的偽協(xié)議后來加了一層 URL 協(xié)議白名單校驗只允許 http/https問題才徹底解決。5.2 Redis 緩存熱門內容和接口響應優(yōu)化校園圈的數(shù)據(jù)訪問有明顯的熱點效應——首頁信息流被頻繁訪問熱門帖子被反復打開。為了提高響應速度我引入了 Redis 作為緩存層。緩存策略是內容列表接口在查詢數(shù)據(jù)庫之前先查 Redis 里有沒有緩存的數(shù)據(jù)如果有直接返回如果沒有查數(shù)據(jù)庫后寫入緩存并設置過期時間比如 5 分鐘。這樣熱門列表的接口響應時間從 300ms 左右降到了 20ms 以內用戶體驗提升明顯。內容詳情頁的緩存策略又不一樣。詳情頁的瀏覽量是實時更新的如果完全緩存會導致瀏覽量不漲。我的做法是內容詳情只緩存 30 秒瀏覽量的增加通過異步方式更新到數(shù)據(jù)庫同時更新 Redis 里的計數(shù)。在校園用戶量級下這種準實時的方案效果很好。但緩存方案也有一個需要注意的坑——緩存雪崩。如果在同一時間大量緩存同時過期請求會同時落到數(shù)據(jù)庫可能導致數(shù)據(jù)庫壓力驟增。我的緩解措施是設置緩存過期時間時加一個隨機偏移量比如 5 分鐘加 0~60 秒的隨機數(shù)避免緩存同時失效。5.3 管理后臺與用戶端的數(shù)據(jù)權限隔離校園圈的管理員后臺和用戶端是同一個 SpringBoot 項目但接口路徑不同權限控制也不同。我使用 Spring Security 做權限控制配置了兩種角色ROLE_USER普通用戶和ROLE_ADMIN管理員。普通用戶的接口路徑以/api/user/**開頭管理員的接口路徑以/api/admin/**開頭通過注解PreAuthorize(hasRole(ADMIN))控制訪問權限。這里有一個容易忽略的權限漏洞管理員的刪除接口、審核接口如果只做了角色校驗沒做數(shù)據(jù)歸屬校驗普通用戶只要拿到管理員接口的路徑偽造請求就能刪別人的內容。所以我在管理員接口里除了做角色校驗還通過 Token 里的用戶 ID 去查管理員表確認操作人確實是有效管理員而不是僅僅依賴 JWT 里的角色字段。前后端的數(shù)據(jù)權限隔離最終效果用戶端只能操作自己的內容管理員端可以操作所有內容但所有操作都有日志記錄方便追蹤問題。5.4 從單機部署到前后端分離上線的完整步驟項目上線部署我選擇的方案是SpringBoot 后端打包成 JAR 包部署在云服務器上Uniapp 前端通過 HBuilderX 發(fā)行微信小程序端上傳到微信公眾平臺審核發(fā)布App 端打包成 APK 或上傳到應用商店。完整部署流程如下云服務器準備我用的是一臺 2 核 4G 的 Linux 服務器安裝 JDK 8、MySQL 5.7、Redis、Nginx后端部署用 Maven 打包mvn clean package -DskipTests生成 JAR 包后通過nohup java -jar campus-circle.jar 后臺啟動前端發(fā)布微信小程序端在 HBuilderX 里選擇發(fā)行-小程序-微信生成微信小程序代碼上傳到微信公眾平臺App 端選擇發(fā)行-原生App-云打包生成 APKNginx 配置反向代理將后端 API 路徑/api/反向代理到本地 8080 端口前端 H5 靜態(tài)資源直接由 Nginx 托管部署過程中最容易出問題的環(huán)節(jié)是跨域。前端在開發(fā)環(huán)境使用 HBuilderX 內置瀏覽器時請求后端接口會存在跨域問題我在后端配置了全局 CORS 允許跨域。但需要注意正式環(huán)境建議由 Nginx 代理轉發(fā)避免直接對公網開放后端端口同時可以減少跨域引起的安全問題。6. 從畢設到商用項目二次開發(fā)方向與個人經驗總結6.1 六個模塊的功能邊界與擴展空間這個項目的六個核心模塊雖然功能上已經跑通了但距離一個真正成熟的校園社區(qū)產品還有不少距離。我自己梳理了后續(xù)可以擴展的方向校園集市可以增加購物車、訂單管理、在線聊天買賣雙方溝通、信用評價體系甚至可以對接校內支付系統(tǒng)把跳蚤市場升級成真正的校園電商平臺失物招領可以增加基于地理位置的附近尋物推送當用戶發(fā)布尋物啟事時系統(tǒng)自動提醒附近的用戶論壇模塊可以增加話題標簽、關注、熱榜等功能提升內容分發(fā)效率整體可以考慮接入即時通訊 SDK實現(xiàn)用戶間的私信聊天增強社區(qū)互動性6.2 部署上線后遇到的真實問題和解決方案項目上線后我遇到了幾個前期設計時沒有預見到的問題。第一個問題是內容審核的滯后性。早期所有內容都需要管理員審核后才展示導致用戶體驗很差——發(fā)個表白墻內容要等幾個小時才顯示。后來改成先發(fā)后審策略新發(fā)布的內容立即可見但被舉報超過一定次數(shù)后自動隱藏管理員再人工復核。這個策略更符合校園場景的即時性需求也減輕了管理員的審核負擔。第二個問題是圖片存儲空間的增長。學生上傳的商品圖、失物招領圖每天都在增加服務器磁盤很快就吃緊了。我后來接入了阿里云 OSS 做對象存儲把圖片都遷移到 OSS 上利用它的生命周期管理策略定期將超過 180 天未訪問的圖片轉儲到低頻訪問存儲節(jié)省了大量成本。第三個問題是小程序審核被拒。第一次提交小程序審核時因為表白墻功能涉及用戶生成內容微信要求補充《互聯(lián)網信息服務承諾書》和內容審核機制說明。我補充了敏感詞過濾說明和人工審核流程文檔后審核才通過。這個經驗在做類似社交類小程序時很值得提前準備。6.3 這套架構的通用性如何能遷移到什么場景嚴格來說我做的不是一個校園圈項目而是一套帶用戶體系的內容社區(qū)通用架構。如果把type字段的值從集市、表白墻、論壇、失物招領換成租房、二手、拼車、招聘把用戶角色從學生換成小區(qū)業(yè)主或者公司員工這套系統(tǒng)的核心代碼幾乎無需改動就能支撐一個新的社區(qū)產品。這也是我決定把數(shù)據(jù)庫設計單獨梳理出來的原因。數(shù)據(jù)庫設計決定了系統(tǒng)的上限——如果你的內容表設計得只能支撐一種業(yè)務后續(xù)擴展一個模塊就要重新建表、重新寫接口那才是災難。而如果一開始就設計成統(tǒng)一內容表 分類字段 擴展表的模式后續(xù)每新增一個業(yè)務場景只需要在配置中心增加一個分類再針對特殊業(yè)務建一張擴展表就完事了。我在設計t_content表時特意把type字段設計成可配置的并在后端寫了一個內容類型配置類。當初的想法很簡單以后不管是加課程資料還是拼車出行都只需要加一個類型枚舉值然后寫對應的擴展表和服務即可。這個設計在開發(fā)階段幫了大忙因為表白墻和集市看似完全不同的業(yè)務其實共用了一套 CRUD 代碼。6.4 分享幾條我在這個項目中最深的體會第一不要把通用做成難用。起初我為了讓所有模塊共用一套內容表把字段設計得非常抽象title、content、type這些名稱結果到了寫具體業(yè)務邏輯的時候每個模塊都要做大量 if-else 判斷。后來我把通用字段和個性字段分開——通用字段放t_content個性字段放擴展表代碼簡潔了很多。好的設計是通用框架 可插拔擴展而不是把所有東西都塞進一張表里強行統(tǒng)一。第二跨端開發(fā)的調試成本比想象中高。Uniapp 雖然一套代碼部署三端但每個端的調試方式和表現(xiàn)都有差異。小程序端可以通過微信開發(fā)者工具調試App 端需要用 HBuilderX 的基座調試H5 端則直接在瀏覽器里調。我在開發(fā)中遇到的問題很大一部分是小程序端正常、App 端出現(xiàn)樣式錯亂或者 API 不兼容這需要開發(fā)者對各平臺的特性有一定了解。建議大家在掌握 Uniapp 基礎后盡早開始多端聯(lián)調不要等全部功能開發(fā)完再統(tǒng)一適配不然排錯的成本會非常大。第三安全防護要前置不要上線了再補。我初期覺得校園項目沒什么攻擊價值很多安全策略都沒做結果上線后很快就遇到了刷帖、惡意評論和 XSS 注入的問題。后來補這些安全策略花的時間比一開始就做好要多得多。建議從項目第一天起就考慮登錄鑒權怎么做、參數(shù)校驗怎么做、敏感詞過濾怎么做、內容審核怎么做。這些都是內容社區(qū)類項目的基石不能指望以后再加。第四以終為始先想清楚運營需求再設計功能。校園圈這種項目技術實現(xiàn)只是基礎真正決定成敗的是運營規(guī)則。比如集市的二手交易是否需要擔保交易表白墻的匿名是否需要追溯失物招領的完成狀態(tài)由誰標記這些問題如果不在設計階段想清楚開發(fā)到一半再來改數(shù)據(jù)結構工作量會翻倍。我在開發(fā)前寫了一份簡單的產品需求文檔雖然只有幾頁但避免了后期的大規(guī)模返工這個習慣非常值得保留。這個校園圈項目從需求梳理、數(shù)據(jù)庫設計、后端開發(fā)到前端適配、部署上線前后花了差不多二十天時間。中間踩過的坑從 Nginx 上傳大小限制到小程序審核被拒每一個都是真實的成長代價。如果你也準備做類似的校園社區(qū)項目希望這篇文章能幫你避開我走過的彎路。哪怕只是某一個模塊的設計或者某一段代碼的實現(xiàn)給了你啟發(fā)那這篇整理就沒白寫。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
午夜AV网| 色色色色色日韩午夜激情| 色婷婷视频| 久久99网| 能看的AV| 久久精品这里只有精品免费首页| 96丁香六月婷婷蜜桃综合久久| 久久五月婷| 五月激情婷婷偷拍| 无码91中文字幕| 六九色综合婷婷五月天| 手机看片日日做夜夜| 婷婷五月天无码视频| 中文字幕人妻一区二区| 亚洲1区| 婷婷丁香五月六月激情| 九九五月天| 亚洲深喉aV| 久久婷婷五月综合啪| 丁香婷婷精品视频| 五月婷网| 日本久久视频| 中文AV在线观看| 播丁香五月婷婷欧美| 天天做天天爱天天玩| 99精品视频在线6| 午夜丁香综合婷婷| 色99在线视频| 婷婷丁香五月欧美人| 四虎成人精品永久免费AV九九| 亚洲人操亚洲人| 一级性爱视频| 99性色| 色色AV色色色东莞| 99爱在线精品视频免费观看| 国产午夜一区二区三区| 深爱激情五月婷婷| 色导航色婷婷五月天在线观看| 人人人人人人人人人草| 丁香狠狠| 综合久久十三| 在线婷婷| 丁香五月亚洲激情婷婷射| 欧美久久九九| 色婷婷啪啪综合网| 综合九九久久| 色婷婷丁香九月| av人人操| 五月丁香激情怕怕| 色五月激情网| 久久黄色免费视频| 亚洲99在线| 伊人六月无码视频| 天天综合社区| 综合久久高清| 中文在线视频久9| 激情涩播| 97色操| 五月婷婷六月色| 久久性爱视频这里只有精品| 五月丁香| 午夜免费高清AV片| 思思热在线视频观看精品| 日韩肏屄网| 91精产一区三区免费观看| 色狠狠婷婷| AV成人在线网站| 中字幕视频在线永久在线观看免费 | 噜噜操操| 永久99免费视频网站| 99热这里只有精品268| 另类综合激情| 欧美天天干五月丁香| 婷婷深爱五月亚洲综合| 亚洲激情图文小说| 五月天婷婷丁香成人网| 婷婷五月激情的图片| 五月丁香亚洲综合| 97天堂| 九九热99热| 五月天偷拍| 亚洲人妻av伦理| 国产精品涩涩涩视频网站| WWW.桔色成人.COM| 久久新地此| 啪啪一区| 日本熟女内射| 天天综合色| 国产做爰视频免费播放| 人妻激情视频| 天天干夜夜欢| 五月婷婷婷| 麻豆WWWCOM内射软件| 天天操天天插天天射| 99在线视频播放| 欧美日本VA| 操逼福利视频| 色墦五月丁香| 人人叉久| 丁香五月婷婷亚洲另类| av大香蕉| 五月丁香色综合| 另类视频在线| 五月丁香六月色| 婷婷丁香五月亚洲| 久久玖玖综合| 亚洲色模骚货| 最近韩国日本免费高清观看| 亭亭色网| 色婷婷AV在线观看| 综合99视频| 色爱综合网| 婷婷综合干| 韩日在线熟女| 丁香九月综合激情| 精品九九网| 丁香六月AV| 激情5月婷婷| 激情婷婷五月| 狠狠干婷婷| 婷婷色丁香六月| 久久人妻久久| 91爱操| 婷婷婷婷色| av九九| 丁香色影院| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 亚洲无码99| 久久九九热re6这里有精品| 五月婷婷久久久| 三级大香蕉网| 熟女人妻视频| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 九九热最新| 五月婷中文娱乐综合| 色婷婷中文字母五月丁香| 亚洲色网址| 九九亚洲视频| 丁香婷婷噜噜| 亚洲精品444久久久久久| 丁香五月在线视频| 噼里啪啦在线观看免费完整版视频| 9久久久| 97婷婷五月天| 狠狠色网| 9九色首页| 9999热在线| 97婷婷丁香五月| 天天色天天| 欧美在线看| 久久婷婷五月天蜜桃| 久草热8精品视频在线观看| 天天色情站| 激情五月丁香五月| 色五月开心五月激情五月| www.超碰| 五月色婷婷综合色| 青青草青青草五月天| 丁香六月婷婷缴情欧美| 人妻熟人中文字幕一区二区| 婷婷性爱无码视频| 久久婷鲁| 996er热| 久久婷婷五月综合精品蜜芽| 欧美色婷婷| 久久激情网| 99色热| 亚洲精品色色| 五月婷婷爽爽爽| 婷婷丁香五月激情中文字幕版| 亚洲亚洲人成综合网络 | 国际国外精品欧洲南美洲专区无码不卡| 天天综合网站| 色婷婷亚洲在线| 天堂在线观看视频| 女同激情久久av久久| AV九九| 91碰碰| 亚洲色爽| 久热爱大香蕉在线蜜臀悦色| 激情综合五月| 狠狠色精品综合| 婷婷综合九色伊人| 中文字幕在线观看视频www| 亭亭丁香aV| 青草视频在线播放| 激情开心五月天| 97在线碰| a毛片二逼wwwwwwwwww| 天天干天天干天天操| 婷婷丁香五月天影院| 五月丁香| 五月丁香六月在线| 色婷婷色五月色丁香| 亚洲av电影在线| 强伦轩人妻一区二区电影| 综合网啪| 欧美成人猛片AAAAAAA| 五月婷婷激情综合视频| 久久综合丁香五月| 九月大香蕉| 色玖玖| 久久99热精品a片在线观看| 色丁香五月婷婷综合久久| 日韩精品一品二区三区的使用体验| 色五月激情综合网| 99热一本久道| 免费看欧美成人A片无码| 人人射人人高潮| 欧日美女Va| 九九激情| 激情内射人妻1区2区3区| 亚洲欧美999| 黄网网站在线播放| 亚洲一区二区无遮挡A片| 色99视频| 色色色免费视频| 99视频在线观看视频| 色婷婷偷拍| 国产日韩欧美| 婷婷99狠狠| 性生活久久朋友人妻| 97干网站| 第五婷婷伊人丁香色| 午夜不卡久久精品无码免费| 99日韩| 日韩精品一品二区三区的使用体验| 亚洲精品乱码久久久久99| 99精品偷拍视频| 性爱久久| 综合色图区| 五月天久久综合| 91人妻视频| 九九99免费理论| 九九热内射| 婷婷精品| 欧美人与性动交CCOO| 久久最新色| 99亚洲色| 婷婷激情五月天小说| 99re思思热在线视频| 色婷婷狠狠久久YY| 色婷婷小视频| 婷婷六月啪啪| 深爱激情网婷婷| 婷婷色五月丁香六月欧美啪| 人人97碰| 91男同| 欧美日韩成人在线网站| 色色色97| 九九综舍久久| 午夜成人天堂久久无码日韩久久| 欧美性猛交99久久久99| 99爽视频| 另类小说五月天| 天天干,天天操,天天射| 91热99| a九九热www| 伊人狠狠色婷婷综合丁香一区| 狠狠色婷| 婷婷色啪| 超碰国产在线| 密臀久久| 丁香婷婷视频| 天天插天天插| www.五月天婷婷| 亭亭玉月丁香| 思思久久99热只有频精品66| 人妻第九页| 99丁香婷婷综合网| 玖玖五月丁香| 婷婷色丁香五月| 激情综合色| 狠狠五月激情在线| 天天插天天干天天舔| 丁香五月婷婷色综合基地| 丁香五月天激情五月天激情五月天激情网| 婷婷色系婷色| 亚洲视频色婷婷| 狠狠人人婷婷| 亚洲精品色| 国产成人一区二区三区在线观看| 北条麻妃伊人| 26UUU欧美激情一区二区| 91AV婷婷| 久久五月丁香六月婷| 天天操九九插| 五月婷婷丁香| 电影91久久久| 色婷婷操逼| 另类激情五月天。| 常久最新免费的色吊丝| 五月丁香色情| 婷婷9月天| 婷婷久久婷婷| 99久久国产成人精品| 人人综合五月人人婷婷| www.91在线观看| 欧美成人A片AAA片在线播放| 久久涩视频| 91久久五月天| 嫩BBB槡BBBB搡BBBB视频| 日本激情五月天‘| 精品久久人妻| 4399伦理午夜| va婷婷在线免费观看| 综合网亚洲| 这里只有精品1| 一区二区成人电影免费播放| 久久色情| 五月丁香六月激情在线| 精品人妻午夜一区二区三区四区| 超碰色婷婷| 天天综合色丁香| 美女妹子后射视频网站在线观看| 亚洲婷婷五月天| 亚洲AV成人在线观看| 久大香蕉| 开心五月网| 亚洲成人免费电影| 97在线/亚洲| 伊人五月久久| 天天天天操| 1囯产午夜仑鲁鲁| 综合久久婷婷五月丁香| 棕合影院色色| 激情婷婷五月天丁香| 都市激情久久| 婷婷中文无码| 婷婷色在线视频| 五月天五月色| 狠狠穞A片一區二區三區| 五月激情射| 新激情五月天色播| 99热在线观看| 五月天婷婷青青| 91美女被操| 黄色成人AV在线| 97丁香五月天| 五月天婷婷综合网| 天天搞夜夜叫| 九九热视频这里只有精品| 91chinese 在线| 夜夜骑天天玩天天日| 九九Av| 九九热精品99| 日91高清无玛| 99爱爱网| 大天天伊人| 丁香五月色色婷| 99热在线中文字幕| 成人国产欧美大片一区| 欧美色播综合在线观看| 欧美内射AAAAAAXXXXX| 青青热视频| 色色五月天丁香| 超级碰碰碰碰视频| 色婷婷www| 欧美日韩国产一区二区| 久热这里只有| 91色逼| 丁香五月在线播放| 久久婷婷五月天激情四射| 激情五月天综合| 婷婷伊人綜合中文| 99久久五月婷婷| 一区=区操屄高清大全av| 婷婷涩五月天综合| 丁香久久九九99| 婷婷五月综合激情免费| 五月天婷婷爱| 婷婷综合网| 亚洲综合激情五月天婷婷| 激情综合亚洲| 婷婷五月激情六月丁香| 97成人操| 婷婷狠狠操| 99在线视频免费| 九九大香视频| www。狠狠干。com| 婷婷色色综合| 丁香五月婷婷五月| 九九成人精品免费视频| 国产FREESEXVIDEOS性中国 | 天天人人人人人人人人人人人| 久久久婷婷色五月资源网| 开心深爱激情网| 五月天激情网址| 97AV在线视频| 狠狠做五月婷婷| 亚洲字幕AV一区二区三区四区| 99久久99九九99九九九| 99视频在线观看视频| 日本a片网址| 五月婷色丁香| 婷婷丁香综合在线| 丁香五月天啪啪| 欧美在线骚货| 色婷婷综合在线| 99精品热视频| 激情五月天网页| 亚洲天堂玖玖| 色爱亚洲| 99re这里| 五月丁香激情片| 综合在线观看99| 狠狠色大香蕉| 色999五月色| 丁香婷婷老司机久操| 九九精品综合| 五月停停丁香| 久99| 亚洲最大视频网站| 五月丁香啪| 婷婷精品| 啪啪啪大香蕉| 婷婷五月深情丁香深爱日韩| www.久久久久久久久久.com| 婷婷五月天久久久| 婷婷色色五月天| 午夜天堂啪啪| 天天婷婷综合亚洲亚洲| 日韩AV在线免费| 日本综合色色| 综合色图区| 综合99视频| 色情综合网| 五月天小说激情| 天花AV无码| 高清视频一区| 久碰视频| av在线免费播放| 亚洲蜜桃精久久久久久久久久久久 | 丁香五月婷婷总啪啪| 中文字幕在线观看视频www| 99热777| 综合激情五月天| 超碰激情五月| 在线日韩av| 激情五月综合| 99久视频| 色丁香五月| 激情开心五月天婷婷基地丁香社区| 欧美性爱五月天| 婷婷久久婷婷| 2005天天干天天1| .精品久久久麻豆国产精品| 亚洲天堂啪啪| 九九在线精品| 色九九九九| 另类综合婷婷五月天欧美视频| 亚州精品色情在线观看| 丁香五月天偷拍| 伊人狠狠丁香婷婷综合尤物| 99热加勒比| 婷婷综合天堂| 婷婷五月开心六月AV| 亚洲春色奇米影视| 丰满少妇猛烈A片免费看观看| 91色久| www.97碰碰com| 婷婷丁香六月天| 人妻免费网站| 五他月天啪啪啪| 99色免费观看全部| www.com在线操视频免费观看| 色伦专区97中文字幕| 亚洲欧美婷婷五月色综合| 亚洲精品亚洲人成人网| 69精品人人人人| 欧洲亚洲午夜| 久99| 久久人妻视频| 日日操夜夜擼| 婷婷综合久久综合| 五月激情射| 免费AV在线| 色婷婷五月影院| 久久99看免费| 色婷五月天| 99色色爰| 狠狠狠人妻| 丁香伊人综合| 激情文学五月丁香六月婷婷| 97色热| 超碰人人超碰| 五月天社区| 午夜激情婷婷| 五月丁香色色综合| 婷婷五月天人妻| 五月六月激情| 神马欧美精| 人人操97| 国产69久久久欧美黑人A片| 日本欧美成人片AAAA| 日本欧美成人片AAAA| 婷婷久久色五月婷婷久久久| 99噜噜噜| 久久这里只有精品久久| wwwC0maV五月花| 欧美丁香五月夫妻天| 91狠狠综合网| 怡红院AV亚洲一区二区三区H| 狠狠色 综合色区| 影音先锋91资源站| 色综久久AV| 五月精品免费XXX| 99这里有精品视频| 五月天激情小说网| 玖玖婷婷视频| 天天做天天干天天综合网| 人妻久久久久久久久久久| 久久92| 九月丁香| 五月天婷婷伊人| 五月婷婷综合热| 婷婷五月天婷婷| 99热免费精品| 中文字幕操比影片| 99热这里只有精品268| 婷婷深爱网| 色停停香蕉视频| 色五月丁香com| 日本操片| 婷婷娱乐丁香综合网| 99在线资源| 国产AV国片偷人妻麻豆| 五月天伊人综合| 五月婷婷六月爱| 人人干99| 99ri6在线视频| 深爱女色婷婷丁香五月亚洲图区| 日本成人噜噜噜| 亚洲精品亚洲人成人网| 操日视频| 天天做天天摸| 成人国产欧美大片一区| 九月丁香| 色三级色三级| 丁香五月天堂网AV| 欧美va亚洲va在线播放| 99热这里| 婷婷五月天成人导航| 色婷婷丁香五月在线观看| 国产亚洲精品AAAA片APP| 婷婷九月综合| 婷婷八月丁香激情综合| 99久久婷婷国产综合亚洲| 97丁香花五月天激情小说| 9l视频自拍9l九色9l成人| 久久综合五月天激情小说网站| 五月总合激情网| 操逼六区| 激情久久久久久久久| 国产婷婷五月天| 国产暴力强伦轩1区二区小说| 丁香五月首页| 亚洲av成人在线| 丁香五月婷婷亚洲激情四射| 五月天天爱| 99热在线极品极品| 丁香六月无码| 日本波多野结衣视频| 婷婷一本和五月丁香| 五月天激情四射| 日韩成人av在线| 激情四射婷婷| 婷色五月天| 91婷婷色 | 成人五月天丁香| 操97免费超级视频| 91偷拍视频| 久久精典| 激情五月综合色| 色婷婷香蕉| 国产综合色婷婷精品久久| 狼人婷婷综合| 婷婷精品免费久久| 久久人人妻| 激情五月天久久丁香| 婷婷丁香六月| 国产夫妻操逼内射视频| 大地9中文在线观看免费高清| 五月丁香六月婷婷,婷| 婷婷在线播放| 96性爱视频| 在线成人va| 五月激情网络| 69精品人妻不卡视频| 开心五月天激情网| 九九色影视| 亚洲天堂色色| 婷婷九月丁香久久| 婷婷va| 久久性操| 成人色情五月天婷婷丁香| 成人五月丁香花| 色激情五月| 九月激情综合| 超碰免费在线| 婷婷五亚洲| 激情伊人网| 色五月婷婷久久| 99er6| 丁香五月天久久| a久久| 在线五月婷婷小电影| 九九热最新| 六月丁香成人网| 丁香婷婷91在线观看视频| 天天干天干| 男女久久婷婷五月天| 美女91一起草| 亚洲五月婷婷| 久久这里都是精品| 中文字幕永久在线| 丁香五月婷婷www..com| 五月丁香啪啪网| 亭亭五月激情亚洲在线| 欧美在线操| 先锋影音av色五月天资源站| 欧美色久| 五月天婷婷黄色| 五月天丁香综合| http://www.com久久久精品一区| 色婷婷偷拍| 黄色99网| AA丁香综合激情| 亚洲人操亚洲人| 激情久久久久| 深爱激情婷| 第2色五月婷| 色色影院黄大片| 专区无日本视频高清8| Av大香蕉| 丁香五月www| 99自拍视频在线| 色婷婷av综合网| 欧美激情凹凸丁香网| 99日韩| 丁香六月天婷婷色| 超级碰碰91| 日日干夜夜撸夜夜骑| Www.se.久久| 五月天色导航| 五月天激情黄色小说在线观看| 国产九月婷婷| 任你艹| 岛国资源站| 婷婷五月天AV| 色综合婷婷| www.99热这里只有精品| 夜夜操狠狠操天天操| 大香蕉综合网| 狠狠爱婷婷丁香| 婷婷色狠狠| 99视频| 青青草五月天| 激情五月天丁香| 男人的天堂五月丁香| 欧美久久婷婷| 深爱激情五月天婷婷网| 狠狠va| 538午夜激情| 久久网日本| 97干视频在线| 日本WWW九九九| 大香蕉丁香| 色停停影院五月天| 亚洲综合欧美色丁香婷婷888月图片| 风流少妇A片一区二区蜜桃| 六月婷婷五月天| 久久久久激情| 99亚洲天堂| 亲子乱AV一区二区三区下载| 人人综合久| 国产精品日日躁夜夜躁| 成人短视频在线| 久婷| 成人丁香五月| 色婷婷五月天在线观看| 香蕉久久国产AV一区二区| 色五月激情网| 久草热久草在线视频| 99精品视频在线观看| 亚洲电影在线观看| 韩国不卡AC视频| 久久久久久久,99精品视频| 草榴视频黄色网| 五月天丁香啪啪啪啪| 国产色香蕉精品五夜婷| 五月丁香激情综合啪啪| 91精品婷婷国产综合久久| 天天爽在线视频| 五月丁色AV| 五月丁花色综合网| www.com五月天| 五月综合777| 激情综合五月色在线| www久久99| 99爱精品视频| 久久激情五月婷婷| 天堂久久精品| 风流少妇A片一区二区蜜桃| 国产毛片精品一区二区色欲黄A片| 亚洲午夜成人av电影网| 久热爱大香蕉在线蜜臀悦色 | 91色色色| 九九操屄| 久久婷婷久久| 99er6| www.色五月.com| 久久综合中文字幕| 欧美肉大捧一进一出免费视频| 无码视频国内精品久久久| 国产永久一黄| 欧美婷婷六月丁香综合色| 五月社区婷婷激情| www.狠狠| 99精品国产在热久久| 婷婷五月天丁香久久| 久操无码| http:色情日本com| 激情五月天福利| 婷婷五月丁香基地在线视频官网| 五月婷婷啪啪网| 色五月婷婷操逼| AA片在线观看视频在线播放| 色五月婷婷91| 26UUU精品一区二区Com| 熟女激情网| 玖玖爱伊人网| 久热精品视频在线观| 五月天,激情四射,婷婷频道| 丁香五月六月| 天堂五月婷婷| 婷婷五月色综合| 五月丁香久久| 亚洲色五月婷婷| 亚洲欧洲色色| 97啪啪| www网站在线观看| 五月天婷婷久久日| 九热...av| 五月天婷婷网站| 在线观看五月婷婷网| 婷婷色导航| 五月丁香花开综合网| 婷婷五月天堂| 五月开心久久| 色久激情在线| 日本少妇裸体做爰高潮片| 99热这里都是精品| 婷婷六月丁香五月| W色综合| 天天激情综合| 大香蕉五月婷婷| 婷婷丁香先锋资源网站| 国产精品激情五月天色婷婷| 狠狠五月天| 91婷婷丁香| 99爱视频| 青青操丝袜美腿| 亚洲性色XXXXX| 五月综合激情网| 在线色色| 久久久8| 国产精品人妻在线网址| 亚洲成人婷婷| 一区=区操屄高清大全av| 色播五月丁香综合| 大地9中文在线观看免费高清| 在线不卡视频| 99操久久| 一区二区免费看| 天天综合精品| 久久精品女人天堂AAA| 天天插天天插天天插| 国产成人综合电影| 天天干天天干天天干天天干天天| 五月丁香婷婷综合网| 丁香五月1页| 色色亚洲视频| 丁香六月AV| 天天色宗合| 婷婷激情五月综合| 亚洲99热| 欧美婷婷六月丁香综合色| 丁香婷婷啪啪| 99re思思| 国产美女无遮挡裸体毛片A片 | 五月激情站| 婷婷伊人中文字幕| 婷婷99狠狠| 日本色婷婷综合| 香蕉人妻AV久久久久天天| 人妻在线中文字幕久久| 日韩二区搞逼插逼毛片| 色婷婷五月天不卡| 色99视| 在线观看av网站| 丁香六月婷婷综合| 一起草av| 婷婷五月天亚洲精品| www.亚洲激情.com| 97五月天| 狠狠色色| 精品少妇人妻AV无码专区偷人| 色丁香久综合在线久综合在线观看| 日本在线播放97| 婷婷综合五月天| 草草视频91| 日日影院 | 成人免费va| 91精品无码| 少妇AB又爽又紧无码网站| 。久久久久久久久久久久久久人妻| αV电影| 五月婷婷激情| 久久网站观看免费欧洲国产| 97搞在线| 黄网免费观看| 六月香五月婷| www狠狠com| 丁香五月激情综合| 日日.c| 玖玖综合网| 不卡的AV网站| 色六月婷婷| 中文不卡一二三区| 久久免费丁香| 欧洲MV日韩MV国产| 97色永久免费视频| 五月丁香六月激情狠狠| 97婷婷狠狠久久综合9色| 91久久久久久久久18| 五月亭亭综合五码| 婷婷色中文字幕| www,setingting| www久久久| 婷婷开心激情五月激情网| 深爱开心激情| WWW.五月com| 五月花激情| 婷婷丁香五月综合激情小说| 色欲天天综合| 天堂美国久久| 亭亭丁香aV| 亚洲啪啪精品| 天天日天天色| 激情五月天综合网| 天天碰天天插天天操| 伦乱天堂| 色吊丝av中文字幕| 青草视频在线观看视频| www狠狠| 99热这里只有精品官网| 综合五月天亚洲婷婷| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 99热在线网站| 国产精产国品一二三在观看| 婷婷五月丁香六月| 天天狠狠干| 黄涩毛片| 婷婷五月综合色中文字幕| 97碰免费精采视频| 另类婷婷五月天啪帕帕| 99∨VTV| 国产成人av在线播放| 天天做好综合色| 草婷婷在线| 婷婷丁香六月五月天| 精品99在线看| 色婷亚洲五月丁香| 99精品综合在线| 荫道BBWBBB高潮潮喷| 亚洲操B| 大香蕉五月天婷婷| 九九在线视频| xx人人xx| 五月花激情| 丁香五月欧美色综合| 丁香五月瑟瑟| 激情五月天综合图片小说网站| 99操碰| 色婷婷免费视频| 99人妻碰碰碰久久久久视| 色色综合热| 婷色综合| 67194线路二在线观看| 99干日日干| 伊人在线视频| 国产精品美女久久久久AV超清| 五月丁香综合| 青青青在线视频国产| 开心激情网在线| 超碰三级秋霞| 婷色五月天| 999激情视频| 亚洲精品成人片在线播| 九九99九九精品视频| 99久久偷拍视频| 狠狠综合久久综合| 色色婷婷婷丁香五月天| 色99www.| 14色综合婷婷| 熟女激情网| 色五月婷婷婷婷婷婷婷婷婷婷| 97在线精品| 激情六| 天天婷婷综合| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 91久久国产综合久久| wwww.9免费视频| 五月婷婷www| 激情六月一二| 天天综合在线网| 亚洲人人操| 熟女激情网| www.婷婷五月| 艳妇野外情欲放荡HD| 91精品刘玥| 综合色视频| 天堂久久婷婷| 久久五月天婷婷视频| 婷婷 亚洲图片 丁香| 丁香五月天成人| 久久伊人五月天| 色五月婷婷av| 国产精品一区在线观看你懂的| 欧美成人AAA片一区国产精品| 婷色影院| 综合网啪| WWW.夜夜操.com| 日日懆天天懆| 五月天开心网| 五月天开心网| 97久久婷婷色| 狠狠色97| 6080av| 久热这里只有| 超碰国产在线| 五月天综合色| 99色婷婷| 五月综合六月婷婷| 久激情网| 91se精品国产| 99久久久免费| 婷婷丁香激情| 亚洲AV人人操| 丁香五月天天久久综合小说| www.91九色| 婷婷激情欧美| 久热AA| 影音先锋美国A| 色情婷| 天天在线久久综合| 国产三级片91| 秋霞少妇AV网站| 免费国产视频| 五月丁香花免费视频| 97色在线视频| 影音先锋男人AV资源站| 婷婷五月激情网| 狠狠色噜噜狠狠| 久久久五月天| 五月天激情啪啪| 色插综合网| 玖玖综合网| Caoub青青超碰| 99热在线免费观看精品| 成人免费在线电影| 婷婷五月丁香图片人人操| 丁香色五月 97干| 狠狠色综合精品视频在线| 99久久婷婷| 8区视频在线| 99免费热视频在线| 久操欧美在线观看97| 9999三级片| 99国产在线| 极品精品一区二区三区在线| 综合五月草| 久久久久亚洲AV成人无码电影| 婷婷色网址| 色婷五月天亚洲| 五月亭亭直播| 2020日日干| 天天插插天天| 色青青电影色五月| 婷婷丁香五月天综合网| 丁香五月色情| 九九久久99精品免费观看www| 99热网站| 日本天堂网站99| www.五月天。com| 国产精产国品一二三在观看| 六月色婷婷色| 九九热黄色| 91九色熟女| 色情五月天丁香社区| 欧美WW在线网| 亚洲最大激情无码| 久久精彩视频99| 丁香激情综合| 久草婷妨| 丁香五月中文字幕久色| 亚洲无码影音| 亚洲行行色色| 日本无码专区| 五月丁香六月欧美| 伊人喵咪a V| 五月天激情视频网站| 色欲五月丁香| 深爱五月日韩| 97在线视频 欧美| 日韩九九| 丁香久久九九99| 五月婷婷婷丁香播| 六月丁香停| 五月丁香六月激情综合| 综激情网| 日本va欧美va国产激情| 色热久资源| 亚洲乱码精品久久久久..| 狠狠色狠狠鲁| 操操综合网婷婷| 丁香六月五月婷婷| 91人人妻人人操| 色狠狠999综合| 操一区| 亚洲va成人va成人va在线观看| 丁香五月天激情网址| 99无码精品| 色五月激情综合| 伊人大香蕉毛片| 综合网啪| 五月色在线| 国产精品第一国产精品| 五月婷婷啪啪网| 五月天激情日色在线| 五月天婷婷综合网| 色色五月丁香| 精品少妇人妻AV无码专区偷人| 99思思热只有在这里看| 四川操逼站| 四虎成人精品永久免费AV九九| 深爱五月月天| AV片一区在线观看| 亚洲视频色婷婷| 4399成人黄A片| 538在线精品| 天天摸天天做天天爱天天爽| 色色五月天丁香| 欧美槡BBBB槡BBB少妇| 丁香婷婷视频一区二区| 人妻久久婷婷| 九九视频在线观看视频6 | 久久A V无码视频| 9操在线| 少妇人妻丰满做爰XXX| 亚洲99精品欧美一区| 久婷婷| 久久婷婷五月天大香蕉| 97亚洲婷婷| 在线综合婷婷| 91九色欧美| 国产FREESEXVIDEOS性中国| www.色色色色| 婷婷五月综合婷婷| 久久五月天激情婷婷| 九九视频这里只有精品| 五月丁香六月婷综合成人综合| 五月丁香福利| Aaa久久| 91久热| 久久久久人妻精选| 噜噜噜狠狠色综合| 97成人视频| 婷婷91| 久草大| 天天综合色丁香| 91婷婷五月丁香碰| 国产亚洲精品久久久久久豆腐| 五月丁香六月激情在线| 激情五月综合色婷婷| 91人人操人人爱| 九九爱激情| 五月天啪啪啪| 五月婷婷视频在线观看| 亚洲精| 无码色色色色色| 色色色色区| 狠狠插.com| 亚洲中文乱字字幕在线永久| 亚洲天天操| 天天天天天天天操| 五月天快乐开心激情网| 色婷婷a v| 91欧美日韩| 1024亚洲无码| www.zbzhongsen.com| 色综合久久88色综合天天看| 五月成人综合| 九九草热在线观看| 日日夜夜狠狠婷婷色| 久久伦乱| 丁香五月很很肏| 狠狠色丁香乆乆| www.久久| 丁香五月天激情视频| 九九re精品视频在线观看| 懂色AⅤ| 国产性色蜜乳| 五月天激情网图片 - 百度| 少妇高潮一区二区三区99欧美| 大香AV| 欧美婷婷综合网| 97色 五月天丁香| 99精品国产乱码久久久人妻| 五月综合色| 狠狠操狠狠操| 大香蕉婷婷| 久久丁香五月婷婷| 91黄址| 思思热久久艹| 开心五月综合激情网| 亚洲激情综| 九热...av| 激情五月色婷婷| 五月天婷婷色色网| 婷婷激情视频| 99热主页日本| 一区二区免费看| 99久久www| 丁香花五月天激情| 婷婷五月激情综合| www.yw尤物| 天天日天天爽夜夜爽| 99爱视频在线观看| 亚洲高清在线| 国产精品国产成人国产三级| 午夜丁香婷婷| 黑人巨粗进入警花疼哭A片| 婷婷色情 | 真实的国产乱XXXX在线91| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 99,色| 色婷婷激情五月天丁香| 影音先锋日本三级资源| 久久国产成人9999久久久久| 婷婷五月色综合香五月| 爱iii做iiii日日| 久热re在线视频| 黑人无码一区| 激情六月丁香| 狠狠大香婷婷爱| 五月婷婷香蕉| 日韩精品二三区| 欧美激情五月天| 99久视频| 欧美性猛交XXXX乱大交极品| 亚洲丁香五冃97色| 无码一级片| 超碰激情网| 深情六月婷婷综合久久| 激情五月五月五月婷婷| 综合一本道| 亚洲第一黄网| 国产精品人人做人人爽人人添| 深夜婷婷 丁香| 伊人综合婷婷| 噜噜噜噜婷婷五月天| 亚洲婷婷六月天| 丁香五月Av| 色爱亚洲| 欧美熟女视频 色婷婷| 综合 蜜月 婷婷| 99久久婷婷国产综合| 五月婷婷五月天天| 五月天婷婷综合| 丁香久久| 91色综合网站在线| 婷婷六月视频| 六月婷婷狠狠| 狠狠人人婷婷| 丁香五月色情| 五月丁香激情啪啪网| 丁香五月激情婷婷视频| 亚州性爱99| 99色婷婷| 久久3级片| 久操大香蕉| 五月婷婷我| 成人看片网站| 中文AV网站| 丁香五月天堂| 五月天久久网站| 天天综合色| 一区二区传媒视频| 狠狠操.com| 亚洲五月婷婷| 成人午夜天| 色综合久久88色综合天天看| 五月激情婷婷色| 色色色色色色色色五月先| 99久| 99热色无码| 99热只有| 日韩成人精品中文字幕电影| 99综合一区| 婷婷日日夜夜| 亚洲精品一区中文字幕乱码| 97碰人人操| 伊人午夜综合色啪| 99热婷婷| 91色在线/日韩| 婷婷六月丁香欧美视频在线| 国产精自产拍久久久久久蜜| 丁香六月激情| 五月丁香六月婷婷综合网缴情| 久久婷婷热| 六月丁香五月婷婷| 日本色啪| 婷婷丁香成人网址| 久久丝袜婷婷| 综合欧美五月婷婷| 欧美黄色一级| 六月丁香五月激情亚洲AV| 人妻视频在线| 日本网站久久| 婷婷综合五月天激情| 我爱大香蕉| 91肏| 久久a热| 日韩不卡123| 婷婷丁香视频| 99精品热| 婷婷五月天色| 91一起艹| 人人操人人干AV| 久久婷婷视频| 69精品无码一区二区三区| 久久99久久99精品免观看软件| 久久激情视频| 久久精品爱爱| www.操.com| 婷婷综合在线| 五月激情啪啪啪| 久久婷婷网站| av网址在线| 久久婷婷五月综合伊人| 久色激情| 激情五月天综合网| www.婷婷| 67194中文字幕| 思思热在线观看| 激情 婷婷| 婷婷娌伦网| 丁香色成人| 999婷婷综合| 五月久久婷婷丁香| 五月婷婷五月天| 大香蕉综合在线| 天天插天天爽| aaaaaa片|