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

ARTICLE DETAIL

資訊詳情

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

SpringBoot+Vue文物征集管理系統(tǒng):從需求到部署的完整實踐

SpringBoot+Vue文物征集管理系統(tǒng):從需求到部署的完整實踐 一個“文物征集管理系統(tǒng)”聽起來好像很小眾但放在畢設和課設的背景下這其實是一個非常經(jīng)典、非常聰明的選題。它表面上是一個面向“紅色革命文物”的業(yè)務管理系統(tǒng)實際上內(nèi)核是一個標準的信息管理平臺有用戶權限、有業(yè)務流程流轉(zhuǎn)、有文件上傳、有數(shù)據(jù)統(tǒng)計難度適中業(yè)務故事也好講。很多同學拿到類似的源碼要么只會對著教程跑起來要么不知道怎么在答辯時講清楚更別說萬一遇到問題如何排查。這篇文章我就以這套 SpringBoot Vue 的 MVC 模式管理系統(tǒng)為例從頭到尾拆一遍它解決什么問題、技術架構(gòu)怎么選、核心代碼怎么寫、數(shù)據(jù)庫怎么建、怎么從零跑起來以及我在實際調(diào)試中踩過的一些坑。先說結(jié)論這套東西你把它吃透了不只是完成一個畢設而是真正理解了企業(yè)級前后端分離開發(fā)的基本套路。1. 需求先想清楚再動手這個系統(tǒng)到底要管什么很多同學拿到項目第一件事就是打開 IDEA 開始跑代碼其實這是比較低效的做法。先搞清楚業(yè)務再看代碼事半功倍。1.1 別被“文物征集”四個字勸退拆解核心業(yè)務紅色革命文物征集系統(tǒng)的核心業(yè)務說白了就是一件事把散落在民間的文物線索和實物征集信息系統(tǒng)化地管起來。傳統(tǒng)的線下流程是發(fā)布征集公告 - 群眾來電來信提供線索 - 工作人員登記紙質(zhì)信息 - 專家鑒定審核 - 入庫登記 - 建立臺賬。這個過程里問題很多紙質(zhì)表格容易丟、想查一條記錄翻半天檔案柜、審核進度誰也不知道、統(tǒng)計本月征集了多少文物全靠人工數(shù)。而管理系統(tǒng)要做的就是把這條鏈路搬到線上。我建議你把整個系統(tǒng)抽象成一條“征集業(yè)務線”所有功能都圍繞這條線展開線索登記群眾或者征集員錄入文物基本信息名稱、年代、類別、來源、保存現(xiàn)狀、征集方式等。材料附件上傳文物照片、相關證明文件。審核流轉(zhuǎn)管理員或者專家對征集信息進行審核可能通過、可能退回補充材料。入庫登記審核通過后文物正式進入館藏臺賬生成唯一編號。統(tǒng)計展示按年代、類別、征集狀態(tài)等維度做統(tǒng)計讓管理者掌握征集進度。理解了這條線你再看代碼里的實體類、數(shù)據(jù)庫表、接口設計就會覺得“原來如此”而不是“這是什么鬼”。1.2 功能模塊劃分與權限設計系統(tǒng)里不是所有人都能干所有事的這就是權限設計的由來。一個完整的征集管理系統(tǒng)至少要考慮三類角色系統(tǒng)管理員擁有全部權限包括用戶管理、數(shù)據(jù)字典維護、審核管理、統(tǒng)計查看。征集員/錄入員可以新增征集信息、錄入文物資料、維護自己創(chuàng)建的記錄。專家/審核員主要負責審核征集線索和文物信息給出審核意見。有些系統(tǒng)里還會把“普通社會公眾”角色放進來用于在線提交征集線索這就是另一個典型的業(yè)務場景了。模塊和權限的合理劃分是你答辯時可以重點講的一個亮點。比如“為什么同一個登錄接口要返回不同的菜單權限”“為什么征集的文物信息要用狀態(tài)字段而不是直接刪除”這些都是體現(xiàn)你對系統(tǒng)思考深度的點。權限設計做得好這個系統(tǒng)的框架感就出來了后面加功能也只是在模塊里堆接口而已。2. 技術選型解析SpringBoot Vue MVC 這個組合為什么“穩(wěn)”選技術棧不要追求新奇要追求“能跑、好講、有問題能搜到答案”。SpringBoot Vue 這個組合可以說是當下Java Web前后端分離項目的“標準答案”。2.1 后端SpringBoot 到底幫我們省了哪些事SpringBoot 是一個建立在 Spring 框架之上的快速開發(fā)腳手架。沒有它的時候你要配置 SpringMVC、配置 Tomcat、配置 MyBatis 的 SqlSessionFactory、寫一大堆 XML。有了 SpringBoot 之后很多配置都變成了“約定大于配置”你只需要引入依賴寫上application.yml就能快速啟動一個 Web 服務。在這套系統(tǒng)里SpringBoot 的核心作用有幾個內(nèi)嵌 Tomcat打包成 jar直接java -jar就能啟動不用單獨裝 Tomcat 服務器。Starter 機制引入spring-boot-starter-web就完成了 Web 環(huán)境搭建引入mybatis-plus-boot-starter就有了數(shù)據(jù)庫操作能力。統(tǒng)一配置數(shù)據(jù)庫連接、文件上傳大小、端口號等都在application.yml里管理改配置不用重編譯。還有一個很實用的點是SpringBoot 項目現(xiàn)在幾乎都配套 MyBatis-Plus 使用。它幫你封裝了單表的增刪改查不需要寫基礎的 SQL。比如你要按 ID 查一條文物信息只需要CulturalRelic relic culturalRelicMapper.selectById(id);連 SQL 都不用寫。對于這類業(yè)務相對標準化的管理系統(tǒng)來說MyBatis-Plus 能減少大量低級重復勞動你只需要把心思放在業(yè)務流程上。2.2 MVC 三層架構(gòu)在前后端分離項目里怎么落地項目標題里有一個詞“MVC模式”這個是答辯的時候老師幾乎必問的。MVC 不是前后端分離時代的專用概念但它依然適用于這種架構(gòu)。我們來說清楚它在前后端分離里分別對應什么。后端里的嚴格分層是這樣的Controller 層表現(xiàn)層只負責接收前端請求、解析參數(shù)、調(diào)用 Service、封裝返回結(jié)果。它不寫業(yè)務邏輯也不直接操作數(shù)據(jù)庫。一個干凈的 Controller 方法大概長這樣RestController RequestMapping(/api/relic) public class CulturalRelicController { Resource private CulturalRelicService relicService; PostMapping(/add) public Result add(RequestBody CulturalRelicDTO dto) { return Result.success(relicService.addRelic(dto)); } }Service 層業(yè)務邏輯層這是整個系統(tǒng)的核心負責處理業(yè)務流程、做事務控制、調(diào)用數(shù)據(jù)層接口。判斷狀態(tài)、校驗參數(shù)、組織數(shù)據(jù)都在這一層完成。Mapper/DAO 層數(shù)據(jù)訪問層跟數(shù)據(jù)庫打交道。MyBatis-Plus 的 Mapper 接口繼承BaseMapperT后就自動擁有單表的 CRUD 能力你需要關注的就是那些自定義的復雜 SQL 和分頁查詢。至于前端 Vue它本身是一個 MVVM 框架Model-View-ViewModel但這里的“View”只負責渲染和交互并沒有承擔業(yè)務處理和數(shù)據(jù)庫操作的職責。所以整套系統(tǒng)的業(yè)務歸屬是清晰的Vue 管界面SpringBoot 的 Controller 管接口Service 管業(yè)務Mapper 管數(shù)據(jù)。這就是 MVC 思想在后端落地的方式。2.3 數(shù)據(jù)庫與中間件選型數(shù)據(jù)庫用的 MySQL 8.0這是目前最主流的選擇。跟這套系統(tǒng)配合你需要注意兩點驅(qū)動選擇連接 URL 里建議寫成com.mysql.cj.jdbc.Driver這是 MySQL 8.x 的驅(qū)動類老的com.mysql.jdbc.Driver在新版本下會報警告甚至報錯。時區(qū)問題URL 后面一定要加serverTimezoneAsia/Shanghai否則數(shù)據(jù)庫連接很容易報時區(qū)錯誤。這套系統(tǒng)里基本不需要 Redis、消息隊列這類中間件除非你想給它加分比如用 Redis 存登錄 token、用 RabbitMQ 做提交征集信息后的異步通知。基礎版本MySQL 足夠。3. 數(shù)據(jù)庫設計核心表結(jié)構(gòu)這樣建才合理數(shù)據(jù)庫設計決定了整個系統(tǒng)代碼好不好寫。很多同學在建表的時候喜歡一股腦把所有字段堆在一張表里后面做狀態(tài)流轉(zhuǎn)就各種別扭。這里我直接把核心表拆給你看。3.1 文物征集表業(yè)務主表怎么設計這張表是整個系統(tǒng)的核心建議叫cultural_relic字段設計要有業(yè)務導向思維。注意名稱、類別、年代這種是很多查詢條件的來源必須單獨設計字段。字段名類型注釋idbigint主鍵IDrelic_namevarchar(100)文物名稱relic_categoryvarchar(50)文物類別文件/實物/照片/其他relic_eravarchar(50)所屬年代source_typevarchar(20)征集方式捐贈/移交/購買/借展current_ownervarchar(50)當前持有人contact_phonevarchar(20)聯(lián)系電話descriptiontext文物描述/歷史背景說明statustinyint狀態(tài)0草稿/1待審核/2審核通過/3已入庫/4已退回submitter_idbigint提交人IDcreate_timedatetime創(chuàng)建時間update_timedatetime更新時間這里有幾個很容易踩的坑一種是“所有字段都用 varchar ”比如描述文本也用 varchar(255)后面存超過 255 字就報錯了。描述類字段用text日期用datetime金額用decimal該用什么類型就用什么答辯的時候被問到字段類型選擇這也是一個加分點。另一種是遺漏status狀態(tài)字段。沒有狀態(tài)字段你就無法區(qū)分一條記錄是“剛登記”還是“已經(jīng)入庫”審核流程的代碼根本寫不出來。狀態(tài)字段一定要預留而且建議用tinyint0 到 255 的取值空間足夠用十年。3.2 輔助表與狀態(tài)流轉(zhuǎn)除了主表至少還需要這幾張輔助表文物圖片表relic_image一張文物對應多張圖片。字段就是id、relic_id、image_url、is_primary是否主圖。這就是一對多關系的標準建模方式前端展示圖片列表時直接WHERE relic_id ?查詢即可。審核記錄表audit_record記錄誰在什么時間審核了哪條文物意見是什么。字段包含id、relic_id、auditor_id、audit_status、audit_comment、audit_time。用戶表sys_user賬戶、密碼、姓名、角色、手機號、創(chuàng)建時間。這是數(shù)據(jù)庫層面必須有的“家底”。建好這幾張表整個系統(tǒng)的數(shù)據(jù)流轉(zhuǎn)就順理成章了。文物征集的狀態(tài)流轉(zhuǎn)建議用狀態(tài)機思想來控制而不是隨隨便便在代碼里賦值草稿(0) - 待審核(1) - 審核通過(2) - 已入庫(3) \- 已退回(4) - 修改后重新提交 - 待審核(1)這個流轉(zhuǎn)關系畫成圖貼在論文里也是很有說服力的。4. 后端核心功能實現(xiàn)細節(jié)4.1 文物征集登記接口DTO VO 分層不能省后端代碼的復雜度往往不是功能有多難而是代碼組織得好不好。比如一個“新增征集信息”的接口很多初學者會直接把實體類CulturalRelic作為接收參數(shù)PostMapping(/add) public Result add(RequestBody CulturalRelic relic) { ... }這在簡單場景下沒什么問題但在實際項目中前端傳來的字段和后端實體類的字段往往不是完全一致的。比如前端要傳一個“擬征集方式”而實體類里根本沒有這個字段或者前端會把“圖片列表”也一起傳過來你總不能指望實體類里包含一個 List。更好的做法是給前端單獨定義一個接收對象 DTOData Transfer Object比如CulturalRelicDTOData public class CulturalRelicDTO { private String relicName; private String relicCategory; private String relicEra; private String sourceType; private String currentOwner; private String contactPhone; private String description; private ListString imageUrls; // 圖片地址列表 }然后在 Service 層把 DTO 轉(zhuǎn)換成實體類再保存到數(shù)據(jù)庫。同理接口返回給前端的數(shù)據(jù)最好也用 VOView Object包裝不要直接把數(shù)據(jù)庫實體暴露出去。這樣做的好處很明顯接口字段可控數(shù)據(jù)庫表結(jié)構(gòu)調(diào)整不會影響前端聯(lián)調(diào)代碼也更規(guī)范。答辯時你可以說“這是為了接口層與持久層解耦”這個話一出來檔次就上去了。4.2 審核流程事務控制是關鍵“審核”是征集系統(tǒng)里最核心的業(yè)務操作。審核通過一條文物記錄意味著兩件事同時發(fā)生修改cultural_relic表的status為“審核通過”。往audit_record表插入一條審核記錄。這兩個操作必須同時成功或者同時失敗。如果你只改了主表狀態(tài)插入審核記錄時數(shù)據(jù)庫報錯了那么就會出現(xiàn)“狀態(tài)已經(jīng)變了但沒有任何審核記錄”的數(shù)據(jù)不一致問題。解決辦法就是加事務Transactional(rollbackFor Exception.class) public Result audit(AuditDTO auditDTO) { // 1. 修改文物狀態(tài) CulturalRelic relic culturalRelicMapper.selectById(auditDTO.getRelicId()); relic.setStatus(auditDTO.getAuditStatus()); culturalRelicMapper.updateById(relic); // 2. 插入審核記錄 AuditRecord record new AuditRecord(); record.setRelicId(relic.getId()); record.setAuditorId(...); record.setAuditStatus(auditDTO.getAuditStatus()); record.setAuditComment(auditDTO.getAuditComment()); auditRecordMapper.insert(record); return Result.success(); }Transactional就是告訴 Spring這個方法里的所有數(shù)據(jù)庫操作要么都提交要么都回滾。這是 Java 后端開發(fā)者必須掌握的基礎知識點也是所有業(yè)務系統(tǒng)里保護數(shù)據(jù)一致性的常規(guī)手段。4.3 文件圖片上傳別把文件存進數(shù)據(jù)庫文物征集系統(tǒng)里圖片上傳是必不可少的功能。這里有一個最常見的新手誤區(qū)想都不想就把圖片轉(zhuǎn)成 Base64 字符串存進數(shù)據(jù)庫或者干脆把圖片的二進制數(shù)據(jù)用blob類型存進去。這個方案在畢設項目里能跑但一旦圖片多了數(shù)據(jù)庫體積會膨脹得非??鞌?shù)據(jù)庫備份和查詢性能都會受拖累。正確的常規(guī)做法是文件存磁盤數(shù)據(jù)庫只存文件路徑。在 SpringBoot 中上傳文件的 Controller 方法可以這樣寫PostMapping(/upload) public Result upload(RequestParam(file) MultipartFile file) { // 1. 生成唯一文件名防止重名覆蓋 String originalFilename file.getOriginalFilename(); // 例如 xxx.jpg String fileSuffix originalFilename.substring(originalFilename.lastIndexOf(.)); String newFileName UUID.randomUUID().toString().replace(-, ) fileSuffix; // 2. 指定存儲目錄注意目錄要先創(chuàng)建 String dirPath D:/upload/relic/; File dir new File(dirPath); if (!dir.exists()) { dir.mkdirs(); } // 3. 保存文件 file.transferTo(new File(dirPath newFileName)); // 4. 返回可訪問的 URL 地址 return Result.success(/files/relic/ newFileName); }這里要注意的是第 3 步的transferTo如果報錯大概率是目錄沒有創(chuàng)建權限Linux 下尤為常見。文件存好之后還差一步讓 URL 能訪問到它。在 SpringBoot 里你需要配置一個靜態(tài)資源映射把/files/**路徑映射到磁盤目錄Configuration public class WebMvcConfig implements WebMvcConfigurer { Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(/files/**) .addResourceLocations(file:D:/upload/); } }這樣前端拿到/files/relic/xxx.jpg瀏覽器直接就能打開圖片。4.4 統(tǒng)計報表的 SQL 寫法統(tǒng)計分析模塊在畢設里很受老師青睞因為它能直接體現(xiàn)“數(shù)據(jù)是有價值的”。常用的統(tǒng)計有兩個維度一是按文物類別統(tǒng)計看看征集到的文物里文件類、實物類、照片類各占多少。SQL 其實非常簡單SELECT relic_category AS category, COUNT(*) AS count FROM cultural_relic WHERE status 3 GROUP BY relic_category;二是按年代統(tǒng)計比如解放戰(zhàn)爭時期、土地革命時期等同樣用 GROUP BY 就能完成。這種統(tǒng)計結(jié)果傳給前端之后配合 ECharts 畫餅圖、柱狀圖視覺效果非常好答辯的時候把圖一展示比空口說“系統(tǒng)很完善”有用得多。5. 前端 Vue 實現(xiàn)要點5.1 項目初始化與路由設計前端的工程化開發(fā)一定要從“創(chuàng)建一個標準項目”開始。Vue 官方推薦的腳手架是 Vite但很多老教程用的是 Vue CLI也就是 webpack 方案。這里我的建議是如果你選 Vue 2用 Vue CLInpm install -g vue/cli然后vue create 項目名。如果你選 Vue 3直接用 Vitenpm create vitelatest 項目名 -- --template vue。無論哪種生成的項目骨架都是標準的 src 結(jié)構(gòu)。路由設計上一個典型的管理系統(tǒng)包含這些頁面/login 登錄頁 /layout 主布局包含側(cè)邊欄和頂欄 ├── /dashboard 數(shù)據(jù)統(tǒng)計首頁 ├── /relic/list 文物征集列表 ├── /relic/add 新增征集信息 ├── /relic/detail/:id 文物詳情 ├── /audit/list 審核管理 └── /user/list 用戶管理管理員可見路由配置要配合權限來做。最簡單的做法是登錄時后端返回當前用戶的角色前端根據(jù)角色動態(tài)決定渲染哪些菜單和路由。比如“專家”角色就不顯示“用戶管理”菜單而“管理員”則全部可見。這個功能實現(xiàn)起來不難但非常能體現(xiàn)“系統(tǒng)的完整性”。5.2 列表頁與表單頁的實操要點列表展示是整個前端最常用的功能。我們可以用 Element UI 的el-table加上el-pagination來做分頁。關鍵點在于前端不要把后端返回的全量數(shù)據(jù)在內(nèi)存里做分頁應該把當前頁碼和第頁條數(shù)傳給后端由后端 SQL 分頁返回。頁面第一次加載時調(diào)用后端接口查詢第一頁數(shù)據(jù)this.loadData();async loadData() { const res await this.$http.get(/api/relic/list, { params: { pageNum: this.pageNum, pageSize: this.pageSize, relicName: this.searchForm.relicName, status: this.searchForm.status } }); this.tableData res.data.records; this.total res.data.total; }然后每次切換頁碼、修改搜索條件重新調(diào)用loadData()就行。這里有一個“經(jīng)典坑”很多同學在搜索時把搜索條件里的空字符串也傳給后端導致 SQL 里出現(xiàn)WHERE relic_name 的情況。穩(wěn)妥的做法是在后端接口里對空字符串做一次判斷或者用 MyBatis-Plus 的StringUtils.isNotBlank()配合 QueryWrapper 動態(tài)拼接條件QueryWrapperCulturalRelic wrapper new QueryWrapper(); if (StringUtils.isNotBlank(relicName)) { wrapper.like(relic_name, relicName); }這樣搜索條件為空時就不會拼接 SQL避免了很多隱性問題。5.3 axios 封裝與攔截器前端拿不到數(shù)據(jù)、接口報錯很多時候不是后端問題而是 axios 沒有封裝好。我建議項目一開始就封裝一個統(tǒng)一的請求模塊給所有接口設置一個 baseURL同時配置請求攔截器和響應攔截器import axios from axios; import { Message } from element-ui; import router from ../router; const request axios.create({ baseURL: /api, timeout: 10000 }); // 請求攔截器附加 token request.interceptors.request.use(config { const token localStorage.getItem(token); if (token) { config.headers[Authorization] token; } return config; }); // 響應攔截器統(tǒng)一處理錯誤 request.interceptors.response.use( response { const res response.data; if (res.code ! 200) { Message.error(res.message || 請求失敗); return Promise.reject(new Error(res.message)); } return res; }, error { Message.error(網(wǎng)絡異常請稍后重試); return Promise.reject(error); } ); export default request;有了這個封裝前端每個頁面調(diào)用接口時只需要關心業(yè)務數(shù)據(jù)不需要每個地方都寫錯誤處理。尤其是登錄功能里“token 過期自動跳轉(zhuǎn)登錄頁”的邏輯在響應攔截器里統(tǒng)一寫一次就夠了。這個模塊如果寫好了整個前端工程質(zhì)量立刻提升一個檔次。6. 從源碼到跑起來環(huán)境準備與部署啟動拿到源碼之后很多同學卡在最開始的環(huán)境搭配上。這里給出一份經(jīng)過實測的版本組合能少走很多彎路。6.1 后端環(huán)境搭配與啟動流程推薦這套組合JDK 1.8或者 JDK 11SpringBoot 2.x 都支持Maven 3.6MySQL 8.0SpringBoot 2.7.x不是 3.x3.x 基于 JDK17學生項目沒必要追新2.7 的資料最多遇到問題最好搜啟動前要做的三件事第一在 MySQL 里創(chuàng)建數(shù)據(jù)庫并導入 SQL 文件。一般源碼包里會有一個.sql文件用 Navicat 或者命令行執(zhí)行mysql -u root -p relic_system.sql執(zhí)行前看一眼 SQL 文件里的建庫語句如果沒有CREATE DATABASE那就要自己先在 Navicat 里新建一個數(shù)據(jù)庫再導入。第二修改application.yml里的數(shù)據(jù)庫連接配置。把你的數(shù)據(jù)庫名、用戶名、密碼改對spring: datasource: url: jdbc:mysql://localhost:3306/relic_system?useSSLfalseserverTimezoneAsia/ShanghaicharacterEncodingutf8 username: root password: 你自己的密碼 driver-class-name: com.mysql.cj.jdbc.Driver這里特別強調(diào)useSSLfalse和serverTimezoneAsia/Shanghai。MySQL 8 默認開啟了 SSL本地開發(fā)不需要不加這個參數(shù)可能報SSL connection error時區(qū)不配的話數(shù)據(jù)庫連接池初始化就可能直接報錯。第三啟動項目。在 IDEA 里打開項目等待 Maven 依賴下載完成找到主啟動類右鍵 Run。如果看到類似Tomcat started on port(s): 8080的日志說明后端已經(jīng)起來了。6.2 前端環(huán)境配置與啟動流程前端需要安裝 Node.js建議版本 14 或者 16。啟動步驟npm install npm run servenpm install第一次執(zhí)行時可能很慢尤其是安裝 electron 那類跨平臺依賴。常規(guī)做法是改 registry 鏡像源npm config set registry https://registry.npmmirror.com然后再跑npm install速度會快很多。前端默認端口是 8080后端的端口也是 8080就會沖突。處理方法有兩個推薦改前端的 devServer 端口比如改成 8081然后配置代理轉(zhuǎn)發(fā)到 8080。Vue CLI 項目在vue.config.js里配置代理module.exports { devServer: { port: 8081, proxy: { /api: { target: http://localhost:8080, changeOrigin: true } } } };或者直接改后端端口為 8080 之外的端口如 9090。就算只用一套系統(tǒng)前端 8081 代理到后端 9090 也是可以的。順帶一提前端發(fā)請求時用/api/relic/list這種以/api開頭的相對路徑代理會幫它轉(zhuǎn)發(fā)到后端就不會有跨域問題了。如果你的前端直接寫http://localhost:8080/api/relic/list全路徑請求那必須讓后端開啟跨域CrossOrigin否則瀏覽器會攔截響應。7. 常見問題與排查技巧實錄這部分內(nèi)容真的是你在實際開發(fā)和學習過程中大概率會遇到的比看一百遍教程都有用。我把這套系統(tǒng)里高頻故障整理成速查表。癥狀常見原因解決辦法后端啟動時數(shù)據(jù)庫報 SSL 連接錯誤連接 URL 缺少useSSLfalse在application.yml的 url 里加上useSSLfalse時區(qū)報錯The server time zone value連接 URL 缺少serverTimezone加上serverTimezoneAsia/Shanghai前端請求后端接口 404代理沒配好或請求路徑不對檢查vue.config.js的 proxy 配置路徑是否以/api開頭接口 405 錯誤請求方式不匹配檢查是 POST 還是 GET前后端保持一致請求 401/無權限沒帶 token或 token 過期看前端請求攔截器有沒有附加 token后端是否校驗圖片上傳后訪問 404靜態(tài)資源映射沒配置在 WebMvcConfig 里配置/files/**映射到磁盤目錄前端頁面白屏控制臺報錯路由或組件引入路徑不對檢查路由配置和 import 路徑有些源碼里的路徑直接用絕對路徑需要改成相對路徑npm install非常慢默認源在國外用registry.npmmirror.com鏡像MyBatis-Plus 分頁查詢返回 total 是 0少了分頁插件配置檢查是否配置了MybatisPlusInterceptor且添加了PaginationInnerInterceptor數(shù)據(jù)庫導入 SQL 報錯SQL 文件編碼不是 UTF-8用 Navicat 導入時選擇 UTF-8 編碼或在命令行執(zhí)行時指定--default-character-setutf87.1 排查問題的通用方法論光有速查表還不夠我給你一個通用的排查思路這個方法比任何具體答案都管用。很多同學遇到報錯的第一反應就是把報錯信息復制粘貼到百度這本身沒錯但效率太低了。正確順序是第一步看控制臺最底部的 Caused by 信息。Java 的報錯信息往往很長真正的原因藏在最下面。比如你在 IDEA 的紅色報錯信息里往上翻幾頁找到Caused by: java.sql.SQLException: Access denied for user rootlocalhost (using password: YES)這時候就直接知道是數(shù)據(jù)庫賬號密碼不對而不是被上面的什么 NullPointerException 帶偏。第二步確認錯誤屬于哪個層級。是數(shù)據(jù)庫連接失敗還是 SQL 拼寫錯誤還是業(yè)務代碼空指針還是前端網(wǎng)絡請求失敗層級判斷準確查找范圍縮小一半。第三步斷點調(diào)試。不要覺得斷點調(diào)試很難。在 IDEA 里打個斷點用調(diào)試模式啟動一步步看代碼執(zhí)行到哪一步出錯、某個變量的值是什么十次里有八次能直接揪出問題。這比盲猜變量值高效得多。第四步保留原始日志。排查問題之前先復制完整的日志片段再去查。很多問題單看報錯標題判斷不出來但結(jié)合完整的異常堆棧很容易定位。問別人問題的時候也一定要把完整日志貼出來而不是只說“報錯了”。7.2 跨域問題關鍵是不重蹈覆轍我單獨把跨域拎出來說因為這個是前后端分離項目里最容易困擾新人的問題。瀏覽器有一個同源策略A 網(wǎng)站的 JavaScript 代碼默認無法直接訪問 B 網(wǎng)站的接口。如果前端跑在http://localhost:8081后端跑在http://localhost:8080端口不同就算域名相同也算跨域。最省事的方案就是上面說的代理轉(zhuǎn)發(fā)。前端的所有請求路徑都寫成相對路徑以/api開頭由 Vite 或 webpack-dev-server 代理轉(zhuǎn)發(fā)到后端。這樣瀏覽器看到的請求就是同源的都在 8081跨域問題不存在。如果確實不走代理要后端開跨域你可以在 SpringBoot 里寫一個全局的跨域配置比在每個 Controller 上加CrossOrigin注解更干凈Configuration public class CorsConfig implements WebMvcConfigurer { Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping(/**) .allowedOrigins(http://localhost:8081) .allowedMethods(GET, POST, PUT, DELETE, OPTIONS) .allowedHeaders(*) .allowCredentials(true); } }需要提醒的是allowedOrigins寫死前端地址如果是線上部署用 nginx 反代這句通常卻是不需要的有些情況下反而會導致登錄的 cookie 帶不上。8. 二開擴展讓這個系統(tǒng)從“能交”變成“出彩”基礎功能跑通只是第一步如果想在答辯時拿高分或者自己在技術上真的有收獲一定要嘗試做一兩個擴展功能。我給你幾個方向難度從低到高。第一個方向是接入 JWT 做無狀態(tài)登錄。現(xiàn)在很多管理系統(tǒng)的登錄方案還是基于 Session 的但前后端分離環(huán)境下更通用的是 JWT。原理是用戶登錄成功后后端生成一個帶簽名的 token 返回給前端前端把 token 存在 localStorage 里之后每次請求在請求頭帶上這個 token。后端用攔截器校驗 token 是否有效、是否是當前用戶。這個機制不復雜但做完之后你對“登錄態(tài)”的理解會通透很多。第二個方向是引入對象存儲服務。我上面文章里寫的圖片上傳是存本地磁盤這在教學項目里足夠。但如果你想讓項目更接近生產(chǎn)環(huán)境可以考慮把文件上傳到云端的對象存儲服務比如 MinIO。MinIO 是開源的對象存儲方案可以部署在你自己的服務器上文檔也比較友好。SpringBoot 整合 MinIO 有對應的 SDK接口兩三行代碼就能實現(xiàn)上傳。這個改造既解決了“文件存在服務器本地”的擴容難題也讓你提前接觸了企業(yè)里常用的文件存儲方案。熱搜詞里還提到了“minio加入到springboot”這正好是一個加分項。第三個方向是引入工作流引擎。比如 Flowable 或者 Activiti把審核流程做成可配置的動態(tài)流程。這個難度高但對于“征集審核”“入庫審批”這種多環(huán)節(jié)業(yè)務來說確實更貼切。如果你時間充??梢越ㄗh團隊里一兩個人專門研究這個方向作為進階功能展示。這幾個擴展方向里我個人最推薦第二個方案。理由很簡單在你們整個前后端分離的架構(gòu)里文件存儲是不可或缺的一個環(huán)節(jié)MinIO 的引入不會打斷現(xiàn)有代碼邏輯又能在答辯時展示你對“生產(chǎn)級文件存儲”的認知性價比最高。9. 寫在后面做項目最忌諱“跑起來就完事”最后分享一點我自己做這些項目時的心得。很多人把一個項目拉下來之后跑起來截幾張圖論文一貼就覺得自己完成任務了。實際上等到答辯的時候老師隨便問一個“審核狀態(tài)是怎么流轉(zhuǎn)的”立刻就露餡了。我的建議是你拿到任何系統(tǒng)源碼不要急著跑而是先干兩件事第一件事用筆在紙上畫一遍數(shù)據(jù)庫關系圖。不用畫得多華麗就畫出用戶表、文物征集表、審核記錄表、圖片表之間誰關聯(lián)誰就能明確這個系統(tǒng)的業(yè)務主鏈路。畫完你就能發(fā)現(xiàn)原來從這個系統(tǒng)里隨便找一個功能點都離不開這幾張表的聯(lián)動。第二件事把其中一個核心功能從頭到尾寫一遍。不需要完整重寫整個系統(tǒng)但你可以試著自己寫一個“文物征集信息新增”功能從建表、寫實體、寫 Mapper、寫 Service、寫 Controller到前端寫一個表單頁、調(diào)接口、刷新列表。親手寫完這一個閉環(huán)你就掌握了前后端分離項目里 80% 的套路。剩下的功能無非是列表查詢、狀態(tài)修改、刪除、統(tǒng)計套路都是同一個。這套項目值不值得學關鍵不在于它的功能有多炫而在于它把 Java Web 后端開發(fā)最常用的一整套知識串了起來MVC 分層、ORM 框架、事務管理、文件上傳、權限控制、前后端聯(lián)調(diào)、部署啟動。你把這個項目吃透自己做畢業(yè)設計的時候完全不需要再到處找模板只需要在這個基礎上改業(yè)務字段、加模塊就行——因為骨架已經(jīng)在你腦子里。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
加勒比伊人综合| 91蜜桃婷婷狠狠久久综合9色| 精品久久99| 少妇人妻太紧太深av| 小骚逼被操的爽不爽| 国产亚洲精品美女久久久m| 亚洲性综合11| 伊人国产视频| 欧美亚洲第1页| 激情天天视频| 青青青草原| 久久精彩视频9| 亚洲女人91| 夜夜操91744565| 综合操逼| 精品午夜福利国产一区二区在线观看| 久久精品国产亚洲粉嫩| 国产精品一二三在线看| 欧洲性爱无码区| 亚洲精品人伦一区二区| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 久操视频免费在线观看| 色婷婷丁香五月| 日日日日做夜夜夜夜无码| 91麻豆天美传媒在线| 99精品人人爽| 欧美狠狠弄| 五月婷婷激情网| 国产一区自拍欧美日韩| 囯戸精品高潮呻吟旡码| 久久精品| 免费视频一二三区| 日本欧美不卡| 国产白丝网站| 97超碰超| 国产精品欧美日韩久久| 在线色导航| 国产精品9999| 欧美综合另类| 精品美女久久一二三| 黄片com.| 操逼日批| 精品国产Av无码久久久亚洲| 美女91| 日本久久久久久久久久| 91在线观看,天天综合| 国产精品。| 男人天堂站| 一品道视频一区二区三区| 久久久 国产精品| 十八禁av无码免费网站APP| 囯产精品久久久久久久久久二区三区| 怡红院成人视频| 欧美九一精品久久久熟妇| 91丝袜在线观看视频在线观看| 国产又粗又又黄又猛| 国产精品一区二区黄片| 日韩精品一区二区高清| 激情抓乳插进去啪啪啪日韩| 一个国产在线综合网站| 岛国色情视频在线观看| 色爱三区| 婷婷导航| 久久久久9久久久久| 天天爽入口| 欧美aaaaaaa| 亚洲无线码欧洲精品区别| 无码 黑人一区二区三区| 成在线人在线观看视频| 国产999精品久久久久久| 欧插网站| 长久操视频| 91n.欧美| 免费岛国一级片| 交换娇妻呻吟声不停中文字幕| 国产Av超碰| 国产激情在线| 极品丝袜无码| 91女优在线观看 | 精品少妇一区二区三区| 国产日本一区二区三区蜜臀在线观看| 青娱乐妇女性生活| 亚洲资源站| 97草草| 97网站在线观看| 91美女在线观看| 91欧美情色| 一级二级在线观看| 日韩国产在线观看av| 久久久久久裸体| 精品少妇一区二区| 蜜乳AV免费观看| 园内精品自拍视频在线播放| 欧美十八禁在线看| 狠狠热这里都是精品| 亚洲天天精品| 亚洲欧美一区二区网址| 熟女六十路| 亚洲av在线免费观看| 2019午夜福利视频| 天天激情综合站| 大香蕉丝袜一级片| 美女网站黄页| 日韩无码人妻| 亚洲天堂久久| 九一精品牛牛一区二区| 免费一级精品啪啪视频| 禁止观看美女黄| 色悠久久久av| 久久国产在线一区二区| 二色av| 欧美人妻二区三区| 久草资源在线| 九月婷婷| 久久婷婷苹果| 爱媛媛久久国产福利| 啊好爽受不了无码| 天天欲望网| 白嫩国模丰满一二三区| 九九九九九精品十六| 日韩久久三区| 蜜桃臀一区二区三区久久| 久久精品国产亚洲5555| 久久久国产精品人妻丝袜| 日逼97| 六月婷婷综合| 欧美在线天堂| 天天综合~91入口| 国产丁香精品露脸视频| 97在线视频免费看| 色五月婷婷在线| 欧美色图天堂网m| 精品一区二区成人动漫| 97视频在线视频| 一区 欧美 日韩 麻豆| av爱爱爱| 人人操人人爽人人操人人| 97久久精品不卡| 男人的天堂va在线| 亚洲砖码砖专无区2023| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 亚洲精品97久久中文字幕| 日韩欧美天堂| 欧亚韩国999| 欧美拳交在线播放| 欧美色色色| 国产欧美另类久久久精品课程| 日韩av不卡在线观看| 99热国产| 怡红院视频在线| 2021国产成人精品久久| 一区二区精品更新提醒| 404操逼福利视频| 搡老女人老91妇女熟女| 欧美九9 9 9| 欧美国产精品久久九九| 91性高| 93人人操人人| 96久久久久久久| 偷拍欧美综合| 国产AV色黄看到爽| 啪啪视频免费在线观看| 伊人网在线观看| 国产精品婬乱一级毛片彝族| 亚洲高清男人天堂| www.婷婷| 安徽熟妇视频| 91强奸乱轮| 久久久九| 欧美黑人与女人91~| 亚洲天堂中文字| 九九热re99re6在线精品| 蜜臀久久一区二区| 乱欲一区二区| 中文字幕99999| 国产人妻精品久久久一区二区三区 | 国产风韵犹存熟妇三区| 国产11页| 免费一级特黄特色大片在线观看看| 国模91| 九九亚洲| 亚洲欧洲国产综合av| 四虎av在线| 1024亚洲中文字幕久在线看片你懂的 | 无码二级三级| 99国内精品| 国产精品久久久久久久毛片1| 三四中文字幕| 日韩无码第3页| 99re9这里只有精品| 欧美日韩第一页| 密乳视频在线| 夫妻AV网站| 韩日男人的天堂| 夜夜草网站| 九九无码| 欧美色亚洲色| AV色五月天| 欧美日日夜夜| 青青草视频爽一爽| 五月综合激情| 日本欧美成人片AAAA| 日本视频一区二区三区| av在线播放国产一区| 亚洲高清欧美总合| 国产视频第二页| 黑人综合色| 91美女色视频亚洲| 久久久久亚洲精品| 色欲色香天天天综合网www-亚洲综合国| 91久久久久久久久18| 操逼www.| 草草影院最新网址| 啪啪资源网| 成年人网站在线免费观看| 少妇大屁屁| 尤物视频偷拍免费| 亚洲中文人妻色| 精品久久久久久亚洲| 狠狠色综合网| 99热综合| 99综合网| 天天添天天干电影| 97人妻色| 97一区二区蜜臀| 国产久久久久影院老熟女| 无码人妻丰满热妇又大又粗| 亚洲囯产精品女人久久久| 国产精品96| 欧美色图色综合| 9 9无尺码天堂网| 日日噜噜夜夜久久亚洲一区二区| 长久操视频| 青青操视频在线| 91网站在线播放| 日夜尻逼网| 日韩BBN| #NAME?| 九热久| 91亚洲网| 成人无遮挡毛片免费看| 家庭乱伦性爱av| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 啊啊啊免费| 性一级黄色录像片网站导航| 凹凸精品熟女在线观看| 国产黄色小视频网站| 97免费视频在线观看| 中文一区二区三区影院| 1级黄色夫妻对换性交免费看| 亚洲精品国产无码高清| 亚洲aw毛茸茸在线| 99热色精品| 东京热精品97综合网| 精品中文字幕一区二区| 国产亚洲精品av一区| se..亚洲欧美| 97超碰国产亚洲精品| 国产 亚洲 丝袜 制服| 91小视频| 啊啊啊啊啊操我视频| 日韩精品99999| 一区二区蜜臀| 亚洲一区在线观看欧洲| 国产92麻豆天美精品色欲5| 99这里有精品视频| 97久久国产精品| 亚洲天堂资源网| 欧美亚洲色图另类国产| 婷婷中文字幕| 久久综合久色欧美综合狠狠| 亚州性色| 国产无马视频| 91性生活久久久| 精品人妻一区二区三区视频在线| 免费自拍三级综合| 亚洲精品九九九| 在线观看AV片| 狠狠狠狠狠干| 久久网亚洲| 另类亚洲一区二区三区| www.色婷婷| 小骚逼被操的爽不爽| 亚洲男人天堂手机版| 国产精品黄色三级av| 熟女一区二区| 五月天综合| 精品国产久久乱码| 在线观看不卡一区二区三区| 日本超碰在线国产一区| 91久久18禁| 中文字幕蜜乳av| 丁香五月影院| 欧美色综合网| 国产精品久久久久无码Av网曝门| 深爱五月天| 在线观看视频91| www.色吧5.com| 欧美精品在线观看| 大色综合| 国模限制级电影| 日韩本不卡视频在线观看 | 高清国产无码av| 男人的天堂2019AV| 亚洲天堂色图| 97在线免费看视频| 久久五月丁香| 欧美影院一区二区三区| 欧美性爱一内片一区二区三区| 极品肉射| 丁香五月天婷婷姐| 玖玖爱在线视频免费观看| 大香蕉啪啪啪| 狠日欧美| 神马精品视频| 狠狠操夜夜| 天天做天天爱天天爽AV| 国产欧美日韩精品中文| 四虎影视 亚洲无码| 亚洲第2页| 久久九七| 超碰97网站| 麻豆久久久久久久久丝袜 | 亚洲 日本 一 二 三| 大鸡巴久久| 色妹子A V| 久久精品一区二区一8| 国产精品白虎| 中国一级特黄大片护士| 天天日夜干| 后入美女国产| 秋霞 色色| 欧美视频第二页| 日韩卡一卡二卡三在线| 日本在线999| 偷拍亚洲高清图片| 黄色大香焦1级‘′‘| 麻豆天天躁天天揉揉AV| 人人澡人人爽人人精品| 久操凹凸视频| 国语少妇精| 亚洲色图 欧美热图 清纯唯美 另类自拍| 中文字幕三四区| 西西美女视频网| 最新日产中文在线麻豆| 国产精品久久久啊| 97久久国产亚洲精品超碰热| 久久加勒比| 97欧美精品综合| 黑人无码一区二区| 久久超碰日韩精品| 黑人粗大V S日韩女优视频| 五月色网| 国产精品嫩草影院免费| 欧美日韩中文字幕人妻| 91女人的网站| 亚洲AV无码乱码在线观看性色| 蜜桃AV天堂| 啊啊啊好爽快点啊啊啊嗯嗯| 免费在线观看国内色片网站网址| 欧美亚洲小说| 久久欧洲| 99亚洲天堂| 大香蕉一级黄色片久久| 欧美后入| 91模特在线观看| 2020天天色综合| 99久国产精品午夜性色福利| 精品久久97| 91丝袜美女视频| 99精品在线观看| 萌白酱自拍视频| 欧美激色| 色在线69堂| 黑人中出21连凳花野真衣| 极品尤物在线观看| 国语国产操逼伊人AV网| 亚洲AV麻豆Aⅴ无码电影一| 色牛牛AV| 久久久亚洲Av| 国产辣妈在线视频福利| 天天综合97| 欧美同性恋 的搜索结果 - 91n| 蜜臀精品1区2区| 98一区二区精品| 乱伦3P视频| 影音先锋日本一区二区| 国产精品嫩草影院午夜两性 | 日本中文字幕一区| 国产精品不卡一区二区三区| 麻豆成人av| 久久综合女优| 超碰久久性爱| 久久最新视频免费观看| 闷骚老熟女15P| 区日韩亚洲乱码av电影| 91在线页| 久久女人视频| 婷婷国产精品九区| 亚洲欧美综合色| 午夜性| 激情露脸爱| 丝袜综合| 大香网伊人久久综合网eew| 麻豆一区在线| daxiangjiao你懂的| 久久伦理视频久久大香蕉视频| 亚洲棕合电彰| 久久一本大香蕉 | 天天射天天操天天干天天吃2018 | gogogo免费高清看中国国语 | 精品毛片久久久精品毛片| 特级丰满少妇一级AAAA爱毛片| 国产日韩在线播放av| 国产亚洲精品av一区| 日本性爱少妇| 五月婷婷六月丁香| 人人操天天爽| 亚洲s色图| 欧美—性—交—色| 大象AV在线| 欧美日韩国产另类综合| 大香蕉免费乱伦视频| 岛国成人av在线播放网址| 综合婷婷| 大香蕉中文aV在线| 久久久久幕乱码| 伊人91| 无码高清操逼网址| 992这里有精品| 亚洲综合另类欧美久久久| 国产成人天堂| 欧美91变态| 成人自拍三级在线观看| 超碰色男人操熟女| 精彩视频日韩| 国产午夜精品一区二区三区牛牛| 亚洲自拍天堂| 青青草国产亚洲精品久久| 97视频新免费| 日日操免费视频| 成人av动漫在线观看| 91老熟女逼| 日韩精品一区,二区 九九...老司机| 麻豆熟妇乱妇熟色A片在线看| 精品欧美老熟女一二区| 久久久久婷婷| 青青草成人视频在线观看二区| 97伊人超碰| 国产精品电影大全| 色播五月丁香| 97超碰中文| 91丝袜在线观看| 黄网色一区二区三区四区精品| 婷婷伊人一区| 精品玖九九久| 亚洲AV成人无码一区二区三区在线观看 | 色蜜AV| 久久久免费视频18| 日韩性爱视频在线免费观看| 超碰人人妻| 东京热av影院| 美女自卫慰黄网站免费| 欧亚韩国999| 免费作爱一级视频| 丁香7月婷婷| 草草网站影院白丝内射| 91伊人久久在线| 日韩精品一区二区日韩| 中出后入| 亚洲二区精品在线观看| 另类图片五月天| 91狼人| 老熟女阿 国产91| 五月丁香六月婷| 欧美—性—交—色| 国模一区二区三区| 国产传媒av天美传媒在线| 啊啊啊好爽快点啊啊啊嗯嗯| 婷婷超| 96精品久久久久中文字幕| 亚洲精品国产精品成人| 级品肉射| 精品少妇一区二区三区在线视频| 色网亚洲人| 日韩啪啪啪啪啪| 亚洲欧美另类激情小说| 高潮综合网| 国产中文字幕曰本毛片| 久久内射| 久久综合精品一区二区三区| 青娱乐国产精品| 四虎免费在线播放| 亚洲不卡av在线| 天天操夜夜操狠很操| 亚洲 欧美 综合 91| 九色婷婷| 中文字幕久久婷婷丁香五月天| 你草精品在线视频| 亚洲AV无码国产成人| 欧美国产婷婷久久| 久久99999| 国内三级自拍小视频在线观看| 国产400孕妇孕交群| 日本精品免费一区二区三区四区| 97任你吞精| 超碰97久久| 日韩无码AB| 青青草操逼逼视频| 人妻啊啊人妻啊啊| 撸无码不卡免费视频| 五月婷婷五月天| 精品国产三级av韩国在线| 欧美A√综合网 | 青娱乐二区免费| 少妇高潮喷水无套久久久久久| 嗯嗯啊啊视频在线看| 老外又粗又长一晚做五次| 久热这里| 国产美女激情| 青娱乐亚洲热| 色综合网1| 日本精品一级二级三级| 精品免费成人久久| 精品999日本| 天天日天天插| 欧美大香蕉专区网| 91久久九九精品国产综合| 亚洲日本大香蕉1| 亚洲男人的天堂AV| 97超碰69| 九九精品热| 福利伊人玖玖国产| 天堂69亚洲精品中文字| 日本一区二区三区四区五区六区七区八区九区| 97超碰久| 熟女中出视频| 久久国产精品一级二级三级| 亚洲国产日韩欧美熟妇在线| 夜夜操青青草| 无码人妻一区二区三区色欲aⅴ| 狠狠躁AV| 国精精品无码一二三区水多多| 国产 日韩,欧美 自拍| 亚洲情色 自拍| 亚洲少妇自拍中文字幕懂色| 色综合20p| 天天日天天射天天干| 亚洲人精| 久久一二区四| JULIA人妻风俗店中出电影| 五月婷丁香| 亚洲中文字幕精品久久久久久直播| 免费观看国产不卡av| 欧美综合国产精品久久丁香| 人人搞人人插人人操| 超碰97人妻| 欧美精品97| 91精品91久久久中77777| 男人的天堂VA| 99re在线| 98人妻精品一区二区色欲| 日韩一级欧美一级国产一级台湾| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 人妻少妇久久久| 天天干天天做| 欧美性爱97超碰| 国产欧美一区二区| 屌妞视频久久久久久久久久久久| 四季AV一区二区凹凸精品小说| 加勒比AV网| 亚洲老司机123专区| 中文字幕乱偷人妻久久艾草网| 偷拍片久久| 香港久久久| 欧美天天综合网版| 被操高清无码视频| 一牛影视成人片免费| 人妻系列无码专区中文有码| 久久精品国产亚洲AV成人直播| av资源在线观看少妇| 屌逼传媒| 久草毛片电影怡| 久久久九九| 特色a在线上| 久久久精品91八戒| 午夜福利成人免费视频| 九九热免费视频| 天天日美女的B| 九九九999久久久网站| 97色碰| 韩国手机不卡无码三级视频| 免费精品福利在线观看| 久久久久久性爱片| 91国产丝袜美女| 九九热三级片| 中文字幕精品一区二区精| 日本色色色| 影音综合网| 天美久久久久| 日本性爱欧美性爱| 夜色五月天| 亚洲男人的天堂在线看| 三级色影综合网| 日韩精品在线观看观看| 国产又粗又又黄又猛| 欧美伦乱爱| 欧美色院| 性色av婷婷久久一区二区点复制| 色爱综合网欧美| 亚洲天天自拍| 国产精品无码av| 欧美 中文字幕 一区| 一本色道久久综合亚洲二区三区| 亚洲性爱成人| 日本三级中国三级99人妇网站| 伊人网在线观看| 九九九九九精品视频| 激情无码日韩| 亚洲熟妇无码一区二区三区| 亚洲少妇视频| 国产精品免费视频人成| 密臀AV在线| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 国偷自 一区| 国产又黄又爽又刺激久久久久久| 操狠狠| 欧美色图20P| 无码聚合| AV男人天堂网| 日本激情免费大片| 久久婷婷亚洲欧| 亚洲国产精品成人综合| 97国伦国色| 欧美后入| 极品粉嫩一区二区| 韩国一级做a久久久久| 99精品网| 精品69网| 精品人人| 91啦人妻| 日本人妻天堂网站在线播放| 亚洲天堂在线怕怕视频| 免费看污网站| 日日干天天干夜夜爽| 中文字幕精品丝袜| 亚洲欧美高清无码| 有码免费观看| 亚洲国产另类在线中文| 一二三啪啪专区| 日本不卡在线二区三区| 婷婷中文字幕| 综合久久2017| 欧美精品在线观看| 国产91av在线播放| 老司机免费视频在线91| 久久精品国产亚洲AV片多多| 久草毛片| 三级三级三级日本99| 9Ⅰ老熟女| 第二页中文字幕| 欧美一级久久久丰满| 色男人色天堂东京热| 亚洲日韩国产欧美综合v| 影音资源男人日韩| 久久久久9| 亚洲天天操| 国产白领连续中出在线观看| 91精品久久久久五月天精品| 九九av| 激情看片网站| 91综合站| 久久一二三四五六七八九区区| 美国aaaaa一级黄片| 超碰在线综合97| 五月天色综合| 欧美日韩黄片精品在线| 91激情国产| 大奶啊啊好爽| 国产精品人妻熟女aⅴ| 熟女露脸激情自拍视频| 狠狠干综合| 两女互慰AV高潮喷水在线观看| 性欧美精| 天天舔天天 | 免费成人在线熟妇网| 被体育老师抱着c到高潮| 亚洲熟女综合网| 婷婷15月天青娱乐| 婷婷激情五月| 91午夜无码| 另类欧美色| 中国小夫妻勾搭露脸淫荡对白| 色欲久久综合| 日韩av不卡在线看| 天天日天天看| 天天躁狠狠躁av| 熟女啪啪视频| 人妻激情偷乱视三区频一区二区| 国产免费黄色一级大片| 日韩BBN| 99精品网站| 人妻熟女午夜精品在线| 色欲蜜臀AV| 极品销魂美女一区二区| 亚洲伊人青青草| 啊啊啊好舒服好爽啊啊啊视频| 亚洲精品视频在线| 日本性爱网址| 国产多人在线观看视频| 99热在线观看| 精品国产乱码久久久| 熟女网站最新| 刺激精品视频| 中文字幕一区二区三区人妻少妇在线| 国产一区二区三区影片| 国产亚洲女v在线观看| 午夜操一操| 欧美日韩人妻精品系列一区二区三区| 操逼999| 中文字幕在在线观看网站| 丁香六月啪啪| 国产欧美日韩在线不卡第一页| 成人无码在线超碰网| 草草草视频在线免费看| 熟妇熟女一区二区三区| 我要色综合网站| 中文字幕一品色图| 精品无码产区一区二| 撸撸成人在线视频| 一区中文字幕二区日韩| 久久久亚洲精品电影免费看| 夜夜中出国产| 亚洲国产第一页综合视频| 色色五月丁香| 久久丁香五月婷婷| 九色视频91| 国产原创剧情在线丝袜| 99久久久无码国产精品性男| 国产激情在线| 国内精品伊人久久久久影院会| 日本天天操| 国产三区免费在线观看| 8050午夜少妇无码| 在线v中文字幕一区二区三区| 国产精品成人福利在线| 日本Xx性爱| 在线观看黄色电话| 国产高清成人传媒影视| 中文字幕成人| 青青草视频久久| 日韩丝袜人妻AV| 午夜成人福利影视| 日韩噜噜69| 九九人妻| 人人操人人肉久久精品| 一区二区三区视频| 无码区蜜乳| 国产区91柔拿会所技师| 久久久久久AⅤ无码免费肉站 | 激情内射| 清纯唯美亚洲综合| 亚洲乱码精品一区二区| 四虎影视永久在线免费| 人人看人人摸人人色| 亚洲色五月| 国精品一区二区三| 狠狠爱AV| 啊啊嗯嗯好爽| 日本免费一级AAA大片器| 欧亚在线视频| 久久99国产综合精品女同| 国产精品欧美激在线| 中文字幕av一区二区三区人妻少妇| 九九九成人| 欧美欧美啪啪视频| 丰满人妻一区二区三区大胸懂色 | 综合熟妇一区二区三区| 97在线免费观看| 视频国产精品未满十八禁止在线观看| 亚洲欧美激情在线视频| 蜜臀av中字字幕网站| 久久原创中文| 超碰在线人人射| 久久一区二区高清免费| 欧美少妇熟女| 天美一区在线| 高清国产精品福利网站| 亚洲成人美女无吗| 国产白嫩精品久久| 久草毛片| 自拍偷拍亚洲熟女妇人精品| 欧美日韩成人在线| 欧美91久久久久| 爱爱啊啊啊| 人人操人人摸人 | 桑老女人九区| 日本十八禁免费看污网站| 成人av免费观看| 97精品综合久久网| 国产精品爆乳懂色蜜乳| 久久亚洲av成人无码国产| 国产丰满熟夫69mpp| 国产精品国产精品国产| 亚洲天堂无码| 97精品国产精品免费观看| 国产综合色精品在线观看| 婷婷久久久| 九九九九一级| 蜜乳Av成人片网站| 日韩精品人妻中文字幕有码午| 欧美同性恋 的搜索结果 - 91n| 国模私拍一区二区三区神乳| 欧美精品成人亚洲| 三级色影综合网| 国产AV超爽| 呦女网站| 久草网站免费在线观看| 欧美情色男人的天堂| 肉动漫无遮挡h在线观看| 亚洲天堂,男人| 在线天堂资源亚洲| 无码自拍SM| 久久久久96| 丝袜熟女一区二区三区| 久久一本大香蕉 | 狠狠中文字幕| 亚洲熟女av中文字幕| 激情综合色| 美女黄页网站| 婷婷色色网| 天天爱天天操| 综合影院亚洲| 久久国产成人精品国产成人亚洲| 亚洲图片欧美日韩| 天美91| 男人的天堂在线2| 中文字幕精品探花视频| ss久久| 久久双插| 国产精品视频播放| 日韩人妻一二三区视频| 操曰本熟女| 五月婷婷丁香中文字幕| 青青草一本道福利视频| 婷婷综合五月天| 国产久久久久久| 97超碰碰碰| 俺去啦俺来也久久综合| 超碰538| 国产精品自在线发布| 超碰这里有精品| 九九Av| 国产成人亚洲精品无| 欧美色66| 黄色小视频日本txt| 97 国产精品| 色五月婷婷麻豆在| 日本成a人v网站在线观看| 夜夜久久| 怡红院一区二区熟女人妻| 91观看 国产白丝| 北京专精特新企业招聘信息| 亚洲 日本 国产 综合| 黑人粗大V S日韩女优视频| 综合色色婷婷| 尤物av网站免费在线播放| 久久国产精品熟女人妻| 亚洲国产无码精品首页久久久| 人人操人人摸超碰| 91九九九逼| 久久露脸国产老熟女| 亚洲情欲| 少妇色综合| 艹我哪美一区无码| 亚洲AV性爱电影| 国产一线二线三线av| 91嫩草欧美| 国产成人精品亚洲日本| 久久精品国产Aⅴ| 职场同事知名国产国产精品久久欧美日韩 | 国产一级作爱毛片| 97久久精品亚洲| 国产精品分类在线观看| 99色在线| 97天天做| 夜夜爽77777| 国产精品欧美日韩久久| 99999精品| 久久久久人| 中文字幕一二三区| 亚洲欧美精品福利在线| 国产精品嫩草影院午夜两性 | 免费视频无码| 国产传媒操逼视频| 搡老女人911熟妇老熟女| 亚洲国产福利视频| 欧美 传媒 麻豆 日韩 偷拍| 日韩成人精品中文字幕| 精品人妻一区| 日韩偷拍一区二区三区| 大香久久| 久久噜噜噜精品国产亚洲综合| 欧美日韩免费专区在线| 95人妻爽爽人人做人人澡| 欧美日韩香蕉| 操婢日韩| 五月天婷婷在线看| 国产伦精品| 91天天爽| …中文字幕亚洲乱,97人妻无码费视…| 久草资源在线视频官方总站日韩丝袜美腿 | 欧美不卡五十路| 欧美宗合网| 久久99干一本高清| 九九九九一级| 欧美亚洲涩涩| 大香网伊人久久综合网eew| 在线女人91| 992这里有精品| 久久婷婷伊人| 五月天大香蕉| 国产超碰人人操| 色色色天美视频| 国产成人一级av88| 国产亚洲精品久久久久小| 国产在线综合福利网站| 欧美不在线| 91人人操| 97爱综合| 大JI巴好深好爽又大又粗视频| 啊啊啊啊免费视频| 72av视频| 日韩性色| 久久午夜色播影院免费高清| 91精品人妻一品二品三品| 国产精品一区在线播放| 偷偷人人精品女女久久| 国产免费内射视频| 淫淫综合网| 少妇久久久久| 天天日天天操天天射河南省| 日韩熟女三十乱伦| 乱伦一二三区| 欧美日韩国产黄色片| 欧美人妻久久精品二区三区| 特级丰满少妇一级AAAA爱毛片| 91在线视频观看国产| 欧美极品色| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 亚欧美天堂在线| 91在线限制级| 色在线亚洲视频www| 欧亚乱色熟女一区二区| 国产一区二区啪啪视频| www.婷婷| 素人美腿视频网站| 欧美72网页| 欧洲亚洲综合| 亚洲性高潮| 超碰色综合| 午夜视频久久久久一区| 人人摸人人添人人操| 91精品丝袜久久久久久| 天美国产三级传媒| 情色av电影| 亚洲图片在线| 91成人无码| 激情抓乳插进去啪啪啪日韩| 国产真实野战在线视频| 深爱五月天| 精品九九九九九九九| 国产97综合| 97天天综合| 免费的很黄很污的全部视频| 狼人久草| 国产又大又粗又长视频在线| 九九九九九九九| 精品78| 亚洲 一区二区 自拍| 国产 日韩 欧美 人妻 熟女 中文| 久久久久骚| 青青草中日韩在线| 欧美性xxxxx狂欢| 最新中文字幕精品在线| 大香樵伊人网| 狠色婷婷久久一区二区三区_| 97亚洲综合在线| 国产精品高清2021在线| 亚洲一区中文字幕一区| 久久嫩草国产成人一区| 蜜臀网址在线| 日韩欧洲操屄视频| 五月综合激情网| 高潮综合网| 久久大黄片| 人妻99p| 超碰天天久久79| 欧美 亚洲精品首页| 亚洲精品尤物yw在线影院| 亚洲丝袜色| 九草九九九| 免费αⅴ在线观看| 青娱乐 成人娱乐在线| 久久精品国产97欧美精品亚洲 | 色欲久久久久综合网| 丁香五月天堂| Julia Annxxxxx| AV一区观看| 久久久久国产亚洲一区欧美色图日韩 | AV中文字幕三四五| 久久国内| 99只有精品| 少妇高潮流水av免费| 啊啊啊啊啊啊啊国| 资源新线在线天堂| 欧美激情 一区| 精品性爱一区二区| 欧美综合网1| 国产宅男宅女在线观看| 欧美另类自拍 | 日韩欧美日韩| 久久久一区二区三区四曲免费听| 欧美,日韩,中文,另类| 日韩久久.一级黄色片| 久久鲁夜| 高清一区AV无码| 麻豆AV短剧| 最新日日夜夜天天干干| 亚洲综合888| 91视频精品| 99.色网| 午夜国产成人精品视频| AV天堂电影网| 亚洲无码偷拍| 大香伊人在线一区| 亚瑟国产精品久久无码| 少妇人妻精品| 少妇一级婬片免费放一级a性色.| 亚洲美欧999| 一级人妻性爱视频| 91处女视频在线观看| 丰满人妻一区二区三区性色| 丝袜天堂| 日本Xx性爱| 91高清日| 色噜噜综合在线| 人人操欧美风骚| 啊嗯好大视频在线观看| 欧美Aⅴ| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 欧美一二三区四五区| 日韩欧美福利视频看看| 91偷拍欧美亚洲| 国产精品亚洲天堂网址| 色臀aV| 婷婷五月天色色| 激情小说亚洲| 久久少妇视频| 色一色综合网| 国产精品国产精品国产| 91麻豆天美国产| 国产理论视频在线播放| 神马久久久久久久久| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 殴美色网| Av色五月| 风流老熟女一区二区三区l| 天堂亚洲精品| 美日韩一卡二卡三卡免费人妻精品| 中文字幕日韩电影人妻| 精品美女人人干| 天堂蜜桃无码视频一区二区| 欧美的性爱网站免费| 国产日产欧产美韩系列麻豆免费| 99性爱视频| 亚洲国产91精品一区二区久久| 九九九九九九免费视频| 日本 成 人 小说 电影 一区二区| 国产日韩精品suv| 久久精品综合| 人妻在线臀日韩| 日韩三级天堂在线观看| 999久久久| 久久99精品九九久久久婷婷| 色婷婷在线视频| 淫荡少妇免费| 97爱爱爱| 99re在线视频国产| 91 手机在线播放 绯色| 亚洲高清无码在线桃色| 97色碰| 久久久久久免费电影| 熟妇一区二区三区| 亚洲欧美精品福利在线| 大香蕉免费3| 91美女中出| 芊芊操逼视频无码| 尤物网站91| 国产三级中文字幕粉嫩| 极品内射| 人人喜人人妻| 色5月婷婷| 精品亚洲黄色片 国产精品导航一区二区 | 97欧美视频| 天堂av最新电影网| 日本999精品视频| 天美传媒国产原创中文字幕亚洲欧美另类| 亚洲成人av电影在线| 试看日韩黄片| 日韩有码中文字幕女同性恋 | 国产高清在线观看欧美| 亚洲欧美一区二区网址| 大香蕉99999| 五月天人妻综合| 亚洲熟女一区| 伊人国产视频| 91jk色拍| 97干com| 亚洲日韩一区电影| 久久激情视频| 欧亚免费视频| 91精品人妻电影| 狼狼色丁香久久婷婷综合五月 | 日韩情色AV| 久久综合乱子伦国产免费| 高清无码网址| 九九热超碰| 成片免费播放| 桃花色涩综合影院| 天天色播亚洲综合网站| 国产黄色 A 片免费看| 中国少妇XXXX做受| av一区二区三区四区| 久久中文字幕不卡人妻| 精品九九| 久操视频在线观看| 综合久久97| 欧美成人免费在线观看| 超碰97色| 免费A片三p视频| 波多野42部激情无码喷潮| 久久丁香久草综合网| 国产乱人妻精品入口| 99久久久久久亚洲精品不卡| 污色区网站| 精品人成视频在线观看| 2023天天操夜夜操| 国产精品午夜福利亚洲综合网| 一区二区三区免费视频入口| 亚洲伊人久久综合97| 91色人妻| 强奸乱伦亚洲第一页| 日韩三级天堂在线观看| 午夜黄色免费在线观看| 亚洲精品久久久久久久蜜桃臀| 狠狠爱综合| 天天透伊人| 双插在线| 亚洲人码13|