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

ARTICLE DETAIL

資訊詳情

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

SpringBoot校園招聘系統(tǒng)實(shí)戰(zhàn):從架構(gòu)設(shè)計(jì)到部署全流程解析

SpringBoot校園招聘系統(tǒng)實(shí)戰(zhàn):從架構(gòu)設(shè)計(jì)到部署全流程解析 1. 項(xiàng)目定位與核心功能拆解做校園招聘系統(tǒng)最容易踩的坑就是一上來就想著“把BOSS直聘做成學(xué)生版”。真正上手這個(gè)SpringBoot大學(xué)生招聘系統(tǒng)之后我最大的感受是校園場(chǎng)景和社招場(chǎng)景的需求差異比大多數(shù)人想象的大得多。先說這個(gè)系統(tǒng)解決的典型問題。高校就業(yè)場(chǎng)景里學(xué)生找實(shí)習(xí)、投校招崗位企業(yè)HR招應(yīng)屆生兩邊信息不對(duì)稱的問題非常突出。學(xué)生散落在各個(gè)平臺(tái)投簡(jiǎn)歷企業(yè)又覺得簡(jiǎn)歷質(zhì)量參差不齊。這個(gè)系統(tǒng)做的事情就是把招聘流程拆成一條清晰的業(yè)務(wù)鏈學(xué)生注冊(cè)并維護(hù)簡(jiǎn)歷企業(yè)注冊(cè)并發(fā)布職位學(xué)生檢索職位并投遞簡(jiǎn)歷企業(yè)篩選簡(jiǎn)歷并發(fā)起面試邀約最終完成錄用流程。管理員在整個(gè)過程中做審核和治理保證平臺(tái)數(shù)據(jù)干凈。從我實(shí)際做過的項(xiàng)目來看這個(gè)系統(tǒng)的用戶角色必須拆成三類否則后續(xù)權(quán)限控制會(huì)非常痛苦。學(xué)生端注冊(cè)登錄、簡(jiǎn)歷維護(hù)、職位檢索、投遞簡(jiǎn)歷、收藏職位、查看投遞反饋被查看、被邀約、被拒絕企業(yè)端企業(yè)資料認(rèn)證、職位發(fā)布與管理、收到的簡(jiǎn)歷管理、簡(jiǎn)歷篩選與面試邀約、錄用操作管理端學(xué)生/企業(yè)賬號(hào)審核、職位信息審核、基礎(chǔ)數(shù)據(jù)統(tǒng)計(jì)這三個(gè)角色之間的權(quán)限邊界如果不在設(shè)計(jì)階段就理清后面寫接口的時(shí)候就會(huì)出現(xiàn)到處查角色、到處加if判斷的情況代碼會(huì)越寫越亂。技術(shù)選型上這個(gè)項(xiàng)目用的是SpringBoot MyBatis-Plus MySQL的組合前端采用Vue ElementUI前后端分離部署。選SpringBoot的原因很直接它把Spring家族里那些繁瑣的XML配置全部干掉用自動(dòng)配置機(jī)制讓項(xiàng)目可以快速啟動(dòng)。對(duì)一個(gè)以業(yè)務(wù)功能為主的系統(tǒng)來說SpringBoot能讓你把精力花在業(yè)務(wù)邏輯上而不是花在“怎么把框架跑起來”這件事上。整個(gè)項(xiàng)目還附帶完整的源碼適合作為畢業(yè)設(shè)計(jì)或課程設(shè)計(jì)的參考項(xiàng)目也能直接改改拿去用。2. 系統(tǒng)架構(gòu)與數(shù)據(jù)庫設(shè)計(jì)背后的門道2.1 前后端分離的分層架構(gòu)到底怎么分先說項(xiàng)目結(jié)構(gòu)。一個(gè)規(guī)范的分層架構(gòu)代碼結(jié)構(gòu)直接決定后續(xù)維護(hù)的心情。這個(gè)招聘系統(tǒng)的后端按經(jīng)典的三層架構(gòu)組織Controller層接收請(qǐng)求、參數(shù)校驗(yàn)、調(diào)用Service層、返回統(tǒng)一響應(yīng)結(jié)果Service層業(yè)務(wù)邏輯處理、事務(wù)控制、調(diào)用Mapper層Mapper層數(shù)據(jù)庫訪問負(fù)責(zé)SQL執(zhí)行在SpringBoot項(xiàng)目里包結(jié)構(gòu)建議這樣規(guī)劃config配置類、controller、service、mapper、entity/domain實(shí)體、dto數(shù)據(jù)傳輸對(duì)象、vo視圖對(duì)象、common通用工具和返回結(jié)果封裝。我第一次寫這種系統(tǒng)的時(shí)候把所有類都堆在幾個(gè)包下面后來改需求的時(shí)候找文件找得懷疑人生所以包結(jié)構(gòu)一定要一開始就規(guī)劃好。用MyBatis-Plus而不是原生MyBatis核心原因就一個(gè)字快。單表CRUD完全不需要手寫SQL內(nèi)置的BaseMapper已經(jīng)提供了insert、updateById、selectById、selectPage這些方法。真正需要手寫SQL的場(chǎng)景主要集中在多表聯(lián)查和統(tǒng)計(jì)報(bào)表比如查詢職位列表時(shí)聯(lián)查企業(yè)名稱或者統(tǒng)計(jì)各企業(yè)發(fā)布的職位數(shù)量。這個(gè)項(xiàng)目的核心業(yè)務(wù)邏輯也是圍繞MyBatis-Plus的LambdaQueryWrapper做條件拼接比寫XML文件里的動(dòng)態(tài)SQL要直觀得多。2.2 核心數(shù)據(jù)表設(shè)計(jì)與關(guān)聯(lián)關(guān)系詳解數(shù)據(jù)表設(shè)計(jì)是這個(gè)系統(tǒng)最值得細(xì)看的部分。我結(jié)合實(shí)際使用場(chǎng)景給你拆解一下幾張核心表用戶表sys_user存的是登錄憑證字段包括id、username、passwordBCrypt加密存儲(chǔ)、phone、email、role學(xué)生/企業(yè)/管理員、status啟用/禁用、create_time。注意登錄賬號(hào)和角色信息放在一張表里但學(xué)生和企業(yè)的詳細(xì)資料各自拆表存儲(chǔ)避免一張表里塞太多無關(guān)字段。學(xué)生信息表student_info關(guān)聯(lián)用戶表的userId存放姓名、學(xué)校、專業(yè)、學(xué)歷、畢業(yè)年份、籍貫、聯(lián)系方式等教育背景字段。要針對(duì)校園場(chǎng)景把“專業(yè)”字段單獨(dú)拎出來建索引因?yàn)檫@是學(xué)生端最主要的篩選條件之一。企業(yè)信息表company_info關(guān)聯(lián)userId存企業(yè)名稱、所屬行業(yè)、規(guī)模、融資階段、辦公地址、企業(yè)介紹、營業(yè)執(zhí)照?qǐng)D片路徑。這塊有個(gè)實(shí)操細(xì)節(jié)要提醒企業(yè)認(rèn)證不能省。哪怕做個(gè)簡(jiǎn)單的人工審核也要讓企業(yè)上傳營業(yè)執(zhí)照否則平臺(tái)上會(huì)出現(xiàn)大量虛假招聘這是招聘類平臺(tái)的底線問題。職位表job_position關(guān)聯(lián)companyId核心字段有崗位名稱、職位類別實(shí)習(xí)/校招/兼職、薪資范圍用最低值和最高值兩個(gè)字段存儲(chǔ)便于區(qū)間查詢、工作城市、學(xué)歷要求、招聘人數(shù)、職位描述、發(fā)布時(shí)間、狀態(tài)待審核/已發(fā)布/已下架/已拒絕。投遞記錄表delivery_record這一張表是整個(gè)系統(tǒng)業(yè)務(wù)閉環(huán)的關(guān)鍵。關(guān)聯(lián)studentId和jobId核心字段是status待處理0、已查看1、面試邀約2、已通過3、已拒絕4、已取消5。這六個(gè)狀態(tài)組成了一條完整的投遞生命周期。我見過有項(xiàng)目把狀態(tài)設(shè)計(jì)成布爾字段“是否通過”后來需求一變就全廢了所以狀態(tài)的擴(kuò)展性一定要先想好。這幾張表的關(guān)系也很直觀學(xué)生表對(duì)投遞表是一對(duì)多職位表對(duì)投遞表也是一對(duì)多學(xué)生收藏職位是多對(duì)多需要單獨(dú)建一張收藏關(guān)聯(lián)表字段id、studentId、jobId、create_time。2.3 狀態(tài)機(jī)設(shè)計(jì)投遞狀態(tài)流轉(zhuǎn)的業(yè)務(wù)邏輯狀態(tài)機(jī)這個(gè)詞聽起來高大上實(shí)際上就是一組“什么狀態(tài)下能執(zhí)行什么操作”的規(guī)則。投遞記錄的狀態(tài)流轉(zhuǎn)必須嚴(yán)格限制不能讓學(xué)生已經(jīng)把簡(jiǎn)歷投出去了還能重復(fù)投。整個(gè)流程里狀態(tài)流轉(zhuǎn)的合法路徑是待處理學(xué)生投遞簡(jiǎn)歷后進(jìn)入的初始狀態(tài)已查看企業(yè)HR點(diǎn)擊查看簡(jiǎn)歷后更新為已查看面試邀約企業(yè)發(fā)起面試邀約后狀態(tài)變?yōu)槊嬖囇s同時(shí)系統(tǒng)給學(xué)生發(fā)送站內(nèi)消息已通過面試通過企業(yè)執(zhí)行錄取操作已拒絕企業(yè)查看后覺得不符合或者面試后不通過已取消學(xué)生在待處理狀態(tài)下主動(dòng)撤回投遞為什么不建議讓學(xué)生隨意撤回已經(jīng)進(jìn)入面試環(huán)節(jié)的投遞從現(xiàn)實(shí)業(yè)務(wù)角度看如果學(xué)生能隨便撤回企業(yè)的招聘流程會(huì)被反復(fù)打斷數(shù)據(jù)統(tǒng)計(jì)也會(huì)亂掉。我在實(shí)現(xiàn)狀態(tài)變更的時(shí)候在每個(gè)更新的Service方法里都加了狀態(tài)冪等校驗(yàn)用update ... where status 上一狀態(tài)這種方式防止并發(fā)操作導(dǎo)致數(shù)據(jù)不一致。3. 關(guān)鍵功能模塊的實(shí)現(xiàn)剖析3.1 登錄鑒權(quán)與角色權(quán)限控制方案登錄這塊別看簡(jiǎn)單很多人在權(quán)限上翻車。我建議用JWTJSON Web Token做無狀態(tài)登錄配合攔截器做接口權(quán)限控制。具體流程是用戶登錄成功后后端生成一個(gè)JWT令牌返回給前端前端存在本地存儲(chǔ)中每次請(qǐng)求在請(qǐng)求頭里帶Authorization后端攔截器解析這個(gè)JWT獲取用戶id和角色存入ThreadLocal供后續(xù)業(yè)務(wù)代碼使用。JWT的三段式結(jié)構(gòu)——Header、Payload、Signature——里Payload部分不要放敏感信息只需放userId和role這兩個(gè)核心字段就行。實(shí)際項(xiàng)目中密鑰要放在配置文件中不要硬編碼在代碼里。過期時(shí)間建議設(shè)置成2小時(shí)前端需要配合做token過期后的自動(dòng)跳轉(zhuǎn)登錄頁。角色權(quán)限這塊我強(qiáng)烈建議用攔截器做基于路徑的權(quán)限控制而不是在每個(gè)Controller方法內(nèi)部手動(dòng)判斷。具體做法是定義一個(gè)權(quán)限攔截器在preHandle方法里解析當(dāng)前用戶的角色然后根據(jù)請(qǐng)求路徑前綴做判斷/admin/** 需要管理員角色 /company/** 需要企業(yè)角色 /student/** 需要學(xué)生角色這樣寫的好處是權(quán)限校驗(yàn)邏輯集中在一處新增接口時(shí)只要URL規(guī)范正確權(quán)限控制就自動(dòng)生效不用每個(gè)接口都寫一遍角色判斷的重復(fù)代碼。這里有一個(gè)我在實(shí)際項(xiàng)目中踩過的坑JWT解析失敗和過期處理的異常不要直接拋給前端應(yīng)該封裝一個(gè)統(tǒng)一異常處理器RestControllerAdvice返回固定的錯(cuò)誤碼和提示信息防止認(rèn)證失敗時(shí)前端拿到一個(gè)五顏六色的異常堆棧。3.2 職位檢索與條件組合查詢的實(shí)現(xiàn)職位檢索是學(xué)生端的核心功能也是我在這個(gè)項(xiàng)目里花時(shí)間最多的地方。檢索條件至少包括關(guān)鍵詞崗位名稱模糊匹配、城市、職位類別實(shí)習(xí)/校招/兼職、學(xué)歷要求、薪資范圍。這幾個(gè)條件可以任意組合用MyBatis-Plus的LambdaQueryWrapper做動(dòng)態(tài)SQL拼接非常順手。LambdaQueryWrapperJobPosition wrapper new LambdaQueryWrapper(); wrapper.eq(JobPosition::getStatus, 1) // 只查詢已發(fā)布的職位 .like(StringUtils.hasText(keyword), JobPosition::getJobName, keyword) .eq(StringUtils.hasText(city), JobPosition::getCity, city) .eq(StringUtils.hasText(category), JobPosition::getCategory, category) .ge(minSalary ! null, JobPosition::getSalaryMin, minSalary) .le(maxSalary ! null, JobPosition::getSalaryMax, maxSalary) .orderByDesc(JobPosition::getCreateTime);這段代碼的核心邏輯在于每個(gè)查詢條件都帶上一個(gè)前置的布爾判斷比如StringUtils.hasText(keyword)為false時(shí)這個(gè)條件就自動(dòng)跳過。這樣可以優(yōu)雅地處理“用戶只填了城市、沒填關(guān)鍵詞”這類情況不用寫一堆if判斷。但職位列表不能只返回職位表的數(shù)據(jù)學(xué)生列表里要顯示企業(yè)名稱和企業(yè)Logo所以需要聯(lián)查企業(yè)信息表。我的做法是在Mapper層自定義一個(gè)分頁查詢SQL通過LEFT JOIN把企業(yè)名稱字段查出來封裝到VO對(duì)象中返回給前端頁面。這里還有個(gè)小細(xì)節(jié)MyBatis-Plus的分頁插件要單獨(dú)配置分頁攔截器PaginationInnerInterceptor不配置的話page方法只返回全部數(shù)據(jù)分頁不生效。這個(gè)坑很多人踩過在配置類里補(bǔ)上即可。3.3 簡(jiǎn)歷上傳與在線預(yù)覽的文件處理方案簡(jiǎn)歷管理是學(xué)生端的另一個(gè)高頻操作。文件上傳的方案有兩條路存本地磁盤或者接對(duì)象存儲(chǔ)服務(wù)。這個(gè)項(xiàng)目里可以選一個(gè)務(wù)實(shí)的方式——本地磁盤存儲(chǔ)加靜態(tài)資源映射。具體做法是在配置文件中定義上傳路徑然后通過WebMvcConfigurer添加一個(gè)資源映射器把本地目錄映射成URL虛擬路徑。spring: servlet: multipart: max-file-size: 10MB max-request-size: 20MB file: upload: path: /data/recruitment/files/上傳文件時(shí)FileUtil工具類負(fù)責(zé)按日期生成子目錄用UUID作為文件新名稱防止文件名沖突和路徑穿越攻擊。特別注意文件存儲(chǔ)的目錄不能被代碼里寫死成用戶輸入的文件名。簡(jiǎn)歷支持PDF和Word兩種格式在線預(yù)覽用兩種方案PDF直接通過瀏覽器內(nèi)置的PDF預(yù)覽插件加載Word文件建議用OpenOffice轉(zhuǎn)成PDF之后再預(yù)覽否則前端很難處理。如果你項(xiàng)目部署在云服務(wù)器上我更推薦接入MinIO做對(duì)象存儲(chǔ)。MinIO作為私有化部署的對(duì)象存儲(chǔ)服務(wù)和SpringBoot的整合非常順暢只需在pom.xml中加入依賴然后配置endpoint、accessKey和secretKey。它最大的優(yōu)勢(shì)是把文件和業(yè)務(wù)系統(tǒng)解耦后續(xù)擴(kuò)展、備份、權(quán)限管理都更方便這也是為什么現(xiàn)在項(xiàng)目里越來越多人把MinIO加入SpringBoot。文件上傳成功后返回的是MinIO中文件的訪問URL前端直接使用該URL加載。3.4 投遞流程與面試邀約的業(yè)務(wù)閉環(huán)投遞流程是本系統(tǒng)業(yè)務(wù)閉環(huán)的核心鏈路。學(xué)生瀏覽職位詳情頁點(diǎn)擊“立即投遞”按鈕時(shí)后端要做兩件事判斷該學(xué)生對(duì)該公司這個(gè)職位是否已經(jīng)投遞過查投遞記錄表如果已存在且狀態(tài)不是已取消或已拒絕就提示“重復(fù)投遞”如果不存在則創(chuàng)建一條新的投遞記錄狀態(tài)置為待處理。投遞成功后企業(yè)端會(huì)看到新的投遞記錄點(diǎn)擊查看簡(jiǎn)歷時(shí)投遞狀態(tài)從待處理更新為已查看。企業(yè)看完簡(jiǎn)歷如果覺得合適可以填寫面試時(shí)間、面試地點(diǎn)和備注信息發(fā)起面試邀約。此時(shí)系統(tǒng)要做的事情是更新投遞記錄狀態(tài)為面試邀約同時(shí)給學(xué)生發(fā)送站內(nèi)消息通知。這個(gè)“投遞-查看-邀約”的閉環(huán)用數(shù)據(jù)庫事務(wù)確保數(shù)據(jù)一致性。每一個(gè)狀態(tài)流轉(zhuǎn)接口我都會(huì)在Controller層做參數(shù)校驗(yàn)Spring Validation在Service層做狀態(tài)冪等校驗(yàn)盡可能減少臟數(shù)據(jù)。另外站內(nèi)消息這塊不要做得太重。學(xué)生和企業(yè)之間的溝通初期版本用簡(jiǎn)化的狀態(tài)通知就夠了不做實(shí)時(shí)聊天。如果要做聊天功能復(fù)雜度會(huì)翻倍需要上WebSocket。等核心招聘流程跑通了再加這才是合理的迭代節(jié)奏。4. 核心配置與部署實(shí)操記錄4.1 從零到一SpringBoot環(huán)境搭建與配置項(xiàng)目要用起來第一步是環(huán)境準(zhǔn)備。我以Windows開發(fā)環(huán)境為例把整個(gè)環(huán)境的搭建過程完整跑一遍。本機(jī)需要安裝的工具有JDK 8及以上版本、Maven 3.6、MySQL 5.7或8.0、IDEA編譯器、Navicat或命令行工具。JDK方面我建議安裝JDK 8雖然現(xiàn)在有不少新項(xiàng)目起步就是JDK 17但考慮到畢業(yè)設(shè)計(jì)和課程設(shè)計(jì)場(chǎng)景的兼容性JDK 8的生態(tài)最成熟遇到問題網(wǎng)上都有現(xiàn)成解決方案。創(chuàng)建一個(gè)SpringBoot項(xiàng)目有兩種方式一種是去Spring Initializr網(wǎng)站生成然后導(dǎo)入IDEA另一種是直接在IDEA的Spring Initializr引導(dǎo)界面創(chuàng)建。選SpringBoot 2.7.x版本比較穩(wěn)妥不要一上來就追最新的SpringBoot 3.x因?yàn)?.x版本要求JDK 17且部分依賴的命名和配置方式有變化遷移成本不低。parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.7.18/version relativePath/ /parent創(chuàng)建項(xiàng)目時(shí)勾選的核心依賴有Spring Web、MyBatis-Plus需要手動(dòng)加入坐標(biāo)、MySQL Driver、Lombok、Validation。在pom.xml中Lombok依賴需要配置annotationProcessorPaths否則會(huì)出現(xiàn)注解不生效的問題。配置文件里最重要的就是MySQL連接和日志配置。注意MySQL 8.0和5.7的驅(qū)動(dòng)類名有區(qū)別8.0用com.mysql.cj.jdbc.Driver而且必須配置時(shí)區(qū)serverTimezoneAsia/Shanghai否則默認(rèn)時(shí)區(qū)是美國時(shí)區(qū)查出來的時(shí)間與本地不一致會(huì)讓你懷疑人生。4.2 關(guān)鍵配置逐項(xiàng)說明數(shù)據(jù)庫連接與MyBatis-Plus設(shè)置把a(bǔ)pplication.yml中幾個(gè)關(guān)鍵配置項(xiàng)拎出來單獨(dú)說一說都是實(shí)操中驗(yàn)證過的重要點(diǎn)位。spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/recruitment?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai username: root password: 123456 jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: Asia/Shanghai mybatis-plus: mapper-locations: classpath:mapper/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true global-config: db-config: id-type: auto數(shù)據(jù)源配置里的useUnicodetrue和characterEncodingutf8這兩個(gè)參數(shù)直接決定中文能不能正常存入數(shù)據(jù)庫缺了會(huì)出現(xiàn)亂碼。jackson的時(shí)間格式配置同樣不能漏否則前端拿到的日期是時(shí)間戳數(shù)字還得額外寫工具轉(zhuǎn)換。MyBatis-Plus的map-underscore-to-camel-case必須設(shè)為true這樣才能把數(shù)據(jù)庫的create_time字段自動(dòng)映射到實(shí)體類的createTime屬性。id-type設(shè)為auto表示主鍵自增這是最省事的方案。為了調(diào)試方便開發(fā)階段我建議把SQL日志輸出到控制臺(tái)。log-impl設(shè)置為StdOutImpl后每次執(zhí)行SQL都會(huì)打印完整語句和參數(shù)排查問題效率翻倍。4.3 前端聯(lián)調(diào)Vue項(xiàng)目打包并整合進(jìn)SpringBoot的快捷路徑這個(gè)系統(tǒng)是前后端分離的開發(fā)階段前端用Vue的devServer代理轉(zhuǎn)發(fā)請(qǐng)求到后端接口但是到了部署階段前后端要能用一個(gè)端口跑起來。最省事的方式是把前端項(xiàng)目打包后的dist目錄直接放到SpringBoot的src/main/resources/static目錄下然后重新打包后端項(xiàng)目這樣SpringBoot會(huì)自動(dòng)將靜態(tài)文件作為資源服務(wù)。訪問http://localhost:8080就直接打開前端頁面后端接口在同一個(gè)端口下用/api前綴區(qū)分無需額外配置Nginx。但這里有幾個(gè)注意點(diǎn)需要提前處理好??缬騿栴}開發(fā)階段前端在8080端口、后端在8081端口必須處理后端跨域配置。我一般寫一個(gè)全局CORS配置類允許本地開發(fā)環(huán)境的所有來源跨域Configuration public class CorsConfig { Bean public CorsFilter corsFilter() { CorsConfiguration config new CorsConfiguration(); config.addAllowedOriginPattern(*); config.addAllowedHeader(*); config.addAllowedMethod(*); config.setAllowCredentials(true); UrlBasedCorsConfigurationSource source new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration(/**, config); return new CorsFilter(source); } }實(shí)際聯(lián)調(diào)中還有另一個(gè)常見問題前端頁面是打包后的靜態(tài)文件但頁面里的接口請(qǐng)求路徑是相對(duì)路徑部署到Tomcat二級(jí)目錄時(shí)會(huì)出現(xiàn)路徑錯(cuò)亂。解決辦法是在前端的axios配置中設(shè)置baseURL為/api然后SpringBoot里配置context-path為空或者直接使用根路徑部署。4.4 項(xiàng)目啟動(dòng)與部署注意事項(xiàng)啟動(dòng)項(xiàng)目有兩種方式。開發(fā)階段直接IDEA里運(yùn)行主類生產(chǎn)環(huán)境部署推薦把項(xiàng)目打成JAR包使用java -jar命令啟動(dòng)。打JAR包前要確認(rèn)pom.xml中已經(jīng)配置了SpringBoot的Maven插件否則會(huì)打出普通JAR包直接運(yùn)行會(huì)報(bào)“沒有主清單屬性”。mvn clean package -DskipTests java -jar recruitment-system-1.0.0.jar --server.port8080啟動(dòng)之后第一次進(jìn)入系統(tǒng)時(shí)注意看日志。SpringBoot啟動(dòng)時(shí)打印的端口、數(shù)據(jù)源、MyBatis-Plus配置等信息如果發(fā)現(xiàn)數(shù)據(jù)源連接失敗優(yōu)先檢查MySQL服務(wù)是否啟動(dòng)、賬號(hào)密碼是否正確、數(shù)據(jù)庫是否已創(chuàng)建并導(dǎo)入SQL文件。這些基礎(chǔ)問題排查完系統(tǒng)一般就能正常跑起來了。5. 實(shí)操中常見的坑與排查技巧實(shí)錄5.1 數(shù)據(jù)庫連接失敗與字符集問題這是新手最容易卡住的一關(guān)?,F(xiàn)象是項(xiàng)目啟動(dòng)時(shí)報(bào)Communications link failure或者HikariPool連接池創(chuàng)建失敗??赡艿脑蛴蠱ySQL服務(wù)沒啟動(dòng)、端口不是默認(rèn)的3306、賬號(hào)密碼錯(cuò)誤、數(shù)據(jù)庫不存在。另一種情況更隱蔽數(shù)據(jù)庫表創(chuàng)建好了但查詢中文條件時(shí)結(jié)果為空。這通常是因?yàn)閿?shù)據(jù)庫字符集和連接字符串字符集不一致。我遇到過MySQL數(shù)據(jù)庫使用的是latin1字符集中文插入后變成亂碼。排查方法是執(zhí)行SQL查看字符集SHOW VARIABLES LIKE character%;如果是latin1需要修改數(shù)據(jù)庫和數(shù)據(jù)表的字符集為utf8mb4。utf8mb4比utf8更完善支持存emoji表情是現(xiàn)在的標(biāo)準(zhǔn)選擇。5.2 文件上傳大小超限問題開發(fā)時(shí)上傳PDF簡(jiǎn)歷調(diào)用接口直接報(bào)MultipartException: The field file exceeds its maximum permitted size of 1048576 bytes。這是因?yàn)镾pringBoot默認(rèn)單文件大小限制為1MB多文件請(qǐng)求體限制為10MB。配置文件中把限制調(diào)大即可spring: servlet: multipart: max-file-size: 10MB max-request-size: 20MB注意調(diào)整之后要重啟項(xiàng)目。如果項(xiàng)目部署在Nginx后面Nginx的client_max_body_size也要同步修改否則請(qǐng)求根本到不了后端。5.3 JWT登錄失效與重復(fù)登錄問題JWT方案最常見的兩個(gè)問題一是用戶退出登錄后token還能繼續(xù)使用二是修改密碼后舊token依然有效。這兩個(gè)問題本質(zhì)上都是無狀態(tài)登錄方案的天然缺陷。輕量級(jí)解決方案有兩種思路。第一種是把JWT的token版本號(hào)存入Redis每次登錄生成新版本號(hào)退出或改密時(shí)刪除對(duì)應(yīng)token。這個(gè)方案需要額外引入Redis依賴。第二種更輕量退出登錄的操作在前端刪掉localStorage里的token即可后端維持無狀態(tài)改密后強(qiáng)制前端跳轉(zhuǎn)登錄頁重新登錄。項(xiàng)目初期我建議用第二種代碼最少邏輯清晰。等到系統(tǒng)并發(fā)量上來了再引入Redis做token的統(tǒng)一管理。5.4 IDEA中SpringBoot項(xiàng)目導(dǎo)入與依賴下載失敗跑不起來附帶的源碼拿到之后導(dǎo)入IDEA最常見的報(bào)錯(cuò)是Maven依賴下不下來pom文件一直飄紅。原因一般兩個(gè)本地倉庫沒有對(duì)應(yīng)依賴包且Maven中央倉庫訪問慢或者IDE使用的Maven配置不對(duì)。解決步驟打開IDEA的File - Settings - Maven確認(rèn)Maven home path指向自己安裝的Maven不要用IDEA內(nèi)置的有時(shí)候緩存會(huì)出問題確認(rèn)User settings file指向Maven的conf/settings.xml文件。然后在settings.xml中配置阿里云鏡像倉庫下載速度會(huì)有質(zhì)的提升。mirror idaliyunmaven/id mirrorOf*/mirrorOf name阿里云公共倉庫/name urlhttps://maven.aliyun.com/repository/public/url /mirror配置完鏡像之后執(zhí)行Maven的clean命令再reload項(xiàng)目依賴就會(huì)嘩嘩往下拉。5.5 端口被占用與項(xiàng)目啟動(dòng)沖突啟動(dòng)SpringBoot項(xiàng)目時(shí)提示Port 8080 was already in use。這個(gè)問題的排查最快的方式是查端口占用進(jìn)程netstat -ano | findstr 8080 taskkill /F /PID 進(jìn)程號(hào)如果不想每次啟動(dòng)前手動(dòng)殺進(jìn)程直接在application.yml里把server.port換成8081或者其他常用端口徹底避開沖突。5.6 跨域問題前端調(diào)用后端接口報(bào)No Access-Control-Allow-Origin如果你從Vue開發(fā)服務(wù)器比如localhost:5173直接訪問后端接口瀏覽器會(huì)攔截跨域請(qǐng)求控制臺(tái)報(bào)錯(cuò)CORS。這個(gè)問題非常高頻我這里再強(qiáng)調(diào)一遍后端必須配置CORS過濾器或使用CrossOrigin注解。我見過很多人在網(wǎng)上搜了一堆妥協(xié)方案比如強(qiáng)行關(guān)閉瀏覽器的跨域限制這非常不可取只在本地調(diào)試勉強(qiáng)能跑部署上線必炸。正確的做法是后端在網(wǎng)關(guān)層或全局配置類中統(tǒng)一處理跨域并只允許可信的域名來源。上面CorsConfig的代碼直接可用配置之后一般不會(huì)再報(bào)跨域問題。6. 項(xiàng)目二次開發(fā)與功能擴(kuò)展建議源碼拿到手之后下一個(gè)問題往往是“我想要的功能源碼里面沒有該怎么改”。從實(shí)際經(jīng)驗(yàn)出發(fā)我給大家?guī)讉€(gè)低風(fēng)險(xiǎn)高回報(bào)的二次開發(fā)方向。數(shù)據(jù)看板在管理端增加一個(gè)招聘數(shù)據(jù)統(tǒng)計(jì)面板用ECharts可視化展示每日投遞量、職位發(fā)布量、學(xué)生注冊(cè)量趨勢(shì)。這些統(tǒng)計(jì)數(shù)據(jù)都是現(xiàn)成的寫幾個(gè)COUNT加GROUP BY的SQL再通過接口把聚合結(jié)果返回前端加上圖表組件就夠了。畢業(yè)生答辯時(shí)這塊功能非常加印象分。簡(jiǎn)歷模板多樣化學(xué)生端提供2到3套簡(jiǎn)歷模板讓用戶選擇布局和配色。實(shí)現(xiàn)思路是將簡(jiǎn)歷內(nèi)容拆成結(jié)構(gòu)化JSON保存前端根據(jù)JSON數(shù)據(jù)渲染對(duì)應(yīng)模板。這個(gè)功能不涉及后端業(yè)務(wù)邏輯的改動(dòng)只增加一個(gè)模板字段即可。企業(yè)信用評(píng)價(jià)在職位詳情頁增加企業(yè)評(píng)分展示學(xué)生投遞或面試后可以對(duì)企業(yè)和職位評(píng)分。這個(gè)功能要設(shè)計(jì)好評(píng)價(jià)維度和防惡意刷評(píng)邏輯初期可以做簡(jiǎn)化版只保留總體評(píng)分。郵件通知面試邀約和錄用通知除了站內(nèi)消息外額外發(fā)送郵件提醒。SpringBoot中發(fā)送郵件非常方便引入spring-boot-starter-mail依賴配置郵箱SMTP參數(shù)調(diào)用JavaMailSender即可。從我個(gè)人維護(hù)這類項(xiàng)目的體會(huì)來看一個(gè)畢業(yè)設(shè)計(jì)級(jí)別的招聘系統(tǒng)源碼本身已經(jīng)能把核心業(yè)務(wù)鏈路走通真正拉開差距的是數(shù)據(jù)完整度、細(xì)節(jié)體驗(yàn)和能否自圓其說的設(shè)計(jì)文檔。二次開發(fā)選一個(gè)合適的點(diǎn)做深做透比堆砌十個(gè)半成品功能更值得。7. 寫在最后的一點(diǎn)實(shí)際體會(huì)做這個(gè)SpringBoot大學(xué)生招聘系統(tǒng)的整個(gè)實(shí)踐過程我最大的收獲倒不是寫了多少行代碼而是想明白了“一個(gè)業(yè)務(wù)系統(tǒng)跑通比跑完美更重要”這個(gè)道理。招聘領(lǐng)域本身是個(gè)天然的復(fù)雜業(yè)務(wù)場(chǎng)景涉及三方角色、狀態(tài)流轉(zhuǎn)、文件交互如果一開始就想著把所有功能都做成大而全的產(chǎn)品項(xiàng)目大概率爛尾。如果你正在拿這套源碼做畢業(yè)設(shè)計(jì)或課程設(shè)計(jì)我的建議是先把項(xiàng)目完整跑起來逐條梳理業(yè)務(wù)鏈路看清楚每一個(gè)表字段的來龍去脈然后再動(dòng)手改代碼。改動(dòng)的時(shí)候每改一個(gè)功能點(diǎn)都要考慮會(huì)不會(huì)影響相鄰狀態(tài)流轉(zhuǎn)。我見過不少同學(xué)改了學(xué)生端簡(jiǎn)歷字段結(jié)果企業(yè)端查看簡(jiǎn)歷的頁面報(bào)空指針就是沒有全局梳理數(shù)據(jù)依賴導(dǎo)致的。最后分享一個(gè)小技巧在IDEA中全局搜索TODO注釋源碼作者往往會(huì)在關(guān)鍵業(yè)務(wù)節(jié)點(diǎn)留下注釋說明這些注釋是你快速理解整個(gè)項(xiàng)目邏輯的捷徑。把每個(gè)TODO對(duì)應(yīng)的業(yè)務(wù)場(chǎng)景理清整個(gè)系統(tǒng)的設(shè)計(jì)思路就會(huì)像拼圖一樣在腦子里完整呈現(xiàn)出來。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
永久电影三级在线观看| 东京太热久久久| 久久中文字幕女同性恋一区| 狠狠躁AV| 色综合99| 亚洲成人在线播放| 黑人白女精品一区| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 我要去看2个日本美女.com曹逼| 日产成人久久| 2017大香蕉国产精品久久| 久久九九网| 欧美精品23| 又黄又硬又粗又长国产视频| 亚洲九九爱| 国产极品999| 亚洲av强奸乱伦| 日韩免费大片一级播放| 欧美性xxxxx狂欢| 中文字幕精品亚洲熟女| 日韩在线97| 大香樵伊人网| 97色色色| 99xav| 婷婷五月天基地| 精品久久人妻成人网| 蜜乳av一区二区| 极品销魂美女一区二区| 天天拍夜夜| 99re99在线视频| 欧美丝袜美女电影一二三四区| 日han少妇无码| 夂久色| 亚洲精品成人激情在线| 新婚人妻扶着粗大强行坐下| 五月天丁香婷婷综合网站| 国产欧美成人第一页在线观看| 91视频综合网| 日日夜夜精品视频| 免费在线观看国内色片网站网址| 99色视频| 久久精品亚洲东京热色播| 久久久工口| 五月天激情四射| 操逼日韩无码 | 在线小说视频一区| 最新9久久久9免费视频| 欧美肥臀在线| 欧美亚洲今日在线| 另类图片欧美激情综合| 日韩美女啪啪一区| 亚洲综合中文字幕有码| 另类专区在线观看| 人妻精品综合中文字幕在线| 啊啊啊不要好爽日韩无码一区| 67914在线精品观看| 91亚·色| 97伦综合| 熟妇综合一区二区三区| 欧美日韩国产中文精品字幕自在自线 | 久久久国产亚洲精品系列| 天天做日日做| 一区在线国产播放| 97午夜剧场日韩| 久久这里精品国产99丫e6| 爱爱动态试试看6 0秒| 久久综合女优| 啊啊啊好大好深| 放黄片放3级黄片没穿衣服| 日韩无码视频黄色| 久久香蕉国产线看观看猫咪av| 99久久综合网| 一及黄久一点| 97se亚洲| 任你艹| 亚洲91网。| 精品女同一区| 激情网色| av情色影音| 黑人粗大V S日韩女优视频| 精品亚洲| 91久热这里只有精品| 欧美色图人妻| 久久性爱视频99| 90后性网国产欧美| 天天综合91入口| 色色毛片| 色五月激情综合网| 亚洲日韩熟女人妻高清在线| 麻豆成人影音在线| 亚洲欧美日韩精品久久久一区二区| 人妻精品视频一区二区| 330Dv国产女人终合视频极品人与兽 | 日韩成人高清一区二区| 色色色色网站| 久久宗合亚洲| 久久久久久久伊人精品| 夜夜操天天肏| 亚洲欧美另类图片| 欧美日韩情色一区二区| 黄色视频高清无码网站| 天美传媒国产原创中文字幕亚洲欧美另类 | 欧美系列在线一区二区| 99www.bibizy香蕉资源国产一区二区三区高清 | 天美传媒婬乱在| 手机看片1025| 欧美同性恋 的搜索结果 - 91n| 国产中文字幕在线点播| 蜜桃视频啊啊啊啊| 免费在线观看国内色片网站网址 | 97在线精品观看视频| 91九久| 久久专区| 高清不卡一二三区视频......| 大香蕉懂9| 五月丁香啪啪网| 伊人96在线| 国产日韩欧美亚洲精品95| oumeisetupian| 偷拍亚洲熟女视频播放| 97精品国产精品免费观看| 精品国产三级av韩国在线| 精品人妻二区三区| 综合伊人网12色| 97超碰jingpin| 日韩无码第3页| 99色视频| 精品蜜乳AV免费观看| 国产精品久久久视频| 国产亚洲色婷婷久久99精品91 - 百度| 大香蕉久| 亚洲熟女综合网| 五月综合激情网| 欧美高清91| 精品区9| 9久久久久久| 人妻中文字幕日韩电影| 少妇蹲下买菜露大唇0| 男人天堂黄片| 老汉网| 深夜激情无码| 天天综合网亚洲综合网| 国产精品免费视频不卡| 大香蕉线| 青青青青草av在线观看| 日韩亚洲中文字幕在线| 97久久超碰日韩精品| 人妻久久久久久| 蜜区区视频79 | 中出91视频| 五月丁香婷婷色| 亚洲 无码 偷拍| 精品97久久综合| 久久美女国产| 麻豆区久久久久亚| 亚洲男人天堂Av| 一区AV| 亚洲吊色| 国产精品久久久三级无码| 性交一区二区在线播放| 久久五月天婷婷| 国产精品一二三区18| 六月丁操逼| 成人性爱高清视频免费看| 久久精品国产97欧美精品亚洲| 熟女突然公开看18禁影片| 96久久久久久久| 亚洲欧洲视频小说在线观看| 中文字幕交换人妻| 91色插| 我爱操| 亚洲欧洲美腿丝袜| 草莓精品视频| 国产精品人妻无码久久久老鸭窝| 91路www| 99热| 黄色高清无码无码破解免费暗网 | 亚洲无码一区二区三区三州| 亚洲在线| 熟妇熟女一区二区三区| 97在线播放 | 国产v片在线免费观看| 97超碰总站| 韩国一区二区精品亚洲| 在线观看成人性爱免费小视频| 欧美日韩资源| 夜夜做夜夜爽精品视频| 97超碰色屌| 91free福利| 人妻一二三区| 天天日天天干天天操| 91热色| 亚洲综合影片| 亚洲aV性爱| 欧美偷拍区| 亚洲国产天堂| 易易A毛视频| 骚女高跟AV在线| 日韩少妇丰满亚洲| oumeisetu综合| 亚洲超碰AV| www.黄色在线| 日韩综合成人免费视频| 久96热在线观看视频| 美女9118禁| 欧美亚州综合网图片| 职场同事知名国产国产精品久久欧美日韩| 97天天做| 国模不卡一本二本三电影| 欧美久久九九| 日韩免费人妻色情网站| 天天干天天日天天射黄色大片 | 日本A级视频| 亚洲人妻一区二区三区| 久久久精品成人国产| 国产AV激情无码久久无码 | 爱媛媛久久国产福利| 99国产精品视频尤物| 乱伦日本中文自拍| 亚洲日韩国产精品| 人妻献身系列第54部| 亚洲丝袜诱惑| 亚洲综合欧美| 中文字幕乱码人妻二区三区| 久草免费在线一区二区| 96久久精品一二三区色欲| 日韩一级片在线看| 色婷婷丁香五月天| 麻豆AV一区二区| 大香蕉综合| 禁十八久久| oumeizonghese,www| 亚洲第91页 | HEYZO高无码国产精品227| 26UUU欧美激情一区二区| 岛国毛片在线观看免费| 中国国国产一级特黄毛片| 亚洲欧美中文一区二区三| 久久人人爽爽人人爽人人片αV| 99精品欧美一区二区三区桃色| 黄色片一区二区三区四区五区| 国产91会所女技师在线观看| 超碰国产精品久| 日韩中文字幕人妻视频| 欧美日韩99精品麻豆传媒| 蜜桃色色网站视频三区| 人妻酒店出差被中出免费在线播放| 亚洲91亚洲| 一直超碰| 97在线观看| 99久久久无码精品国产人| 亚洲中文国际强奸字幕| 99精品久久| 91红杏| 中文字幕片| 91熟女视频网| 精品制服美女中文一区二区三区| 亚洲图片91| 婷婷五月天小说| 久久黄片国产一区二区| 国产精品久久9| 日韩美一区| 男人天堂日日夜夜| 热99这里有精品综合久久 | 97色欧洲| 青娱乐福利99| 色综合久久888| 亚洲91网站| 国产91美女视频| 综合操逼| 亚洲综合有玛| 国产精品人妻无码久久久互動交流 | 日韩欧美亚欧在线视频| 国产日韩欧美三级片 | 亚洲a色| 两性色网| 日韩人妻无码精品系列| 男人的天堂1024| 成人福利视频网| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 无码少妇精品一区二区60岁老人| 91视频观看网站| 青青草AV色| 午夜福利无毒不卡| 人妻社区男人天堂| 亚欧免费观看视频| 婷婷五月影院| 亚洲做性| 97啪啪| 久久精品男人的天堂| 欧美大香蕉久| 日韩二级| 凹凸视频在线一区二区| 日本高清电影欧美色图| 91天天综合网| 激情五月天综合网| 欧美色青| 蜜臀久久一区二区| 日本大香蕉综合网| 亚洲一区二区三区AV无码| 蜜臀精品1区2区| 亚洲欧美色图片| 久久久九97| 在线啊啊啊| 久久精品亚洲成a人天堂| 清纯唯美激情四射| 国产精品毛片?v一区二区三区| 久久国产精品91| 久久久久久九九九九| 午夜色婷婷| 亚州 综合 色图| 国产又猛又粗又爽又黄| 97一区二压| 乱伦一区二区三区‘| 亚洲少妇激情视频| 黄片免费看黄片免费看| 欧美色图亚洲色| 尤物av网站| 国产亚洲精品A在线观看下载| 精品v1区| xxxx网站亚洲精品| 综合大香蕉美。| 熟妇操花| 91啪啪| 国产精品2020| 试看日韩黄片| julia ann久久| 精品超碰国产| 亚洲另类春色| 伊蕉97蜜桃97狠狠综合干| 精品亚洲国产成人av网站| 中文字幕伊人| www.婷婷| AV在线性爱| 丝袜美腿操av| 情色av电影| 免费看黄视频亚洲网站| 国产97色在线 | 亚洲| 五月天色图影视| 国产乱伦视频污| 传媒免费一区二区三区| 91日本在线观看| 中文字幕国产在线天堂| 一区二区三区在线日韩影院观看| 亚州少妇| 日欧操屄视频| 91福利网在线观看| 国产精品禁久久久精品| 中文字幕久久精视频久久大全| 日韩成人性日韩成人性爱视频在线免费观看| 污污污8888| 婷婷操逼| 91精品丝袜在线观看| 成人一二| 青青草综合在线| 丝袜无码a片| 色婷婷五月综合激情中文字幕| 久久久91| 97色欧洲| 校园春色宗合网| 天美国产精品| 五月天婷婷久久| 1人人看人人摸人人操| 男人天堂新| 激情啪啪视频| 亚州色站 日韩电影| 97人人超| 日韩色| 秋霞一集毛片观看| 人妻少妇精品视频一区二区三区| 蜜臀无码一区二区| 亚洲精品美女操逼| 久久精品72| 青青草在线视频人人想人人上| 日韩久久.一级黄色片| 欧美欧美啪啪视频| 91这里只有精品| 日韩丨制服丨中文|在线| 玖玖综合色| 精品少妇后入一区二区三区四区人妻巨乳 | 精品在线观看视频在线| 秋霞成人一级在线观看| 国产精品片| 一区二区三区麻豆| 97久久超碰国产精品| 国产福利夜| 国产久久一区二区午夜| 高清无码网址| 小草精彩毛片| 91+欧美| 中文字幕视频2区| 日韩乱码Av| 欧美精品成人亚洲| 色香色香欲天天天影视综合网| 亚洲AV成人无码一区二区三区在线观看 | 超碰在线人人射| 夜夜欧美 | 国产青一二三| 中文字幕大片三级狠狠干| 超碰97起碰| 欧美激情总合网| 极品五月天噜噜| 久久9 9 9精品| 夜夜久久| 伊人久大| 青青青青青手机视频| 久久久久国色αv免费观看| 色综合大香蕉| 国产无马在线| 日逼国产| 亚洲精品819| 久久超碰免费的| 台湾大香蕉99热| 91艹| 精品1区2区3区| 97香蕉网| 亚洲成人无码影院| 亚洲 综合 欧美| 岛国AV一区二区电影| 九九热视频这里只有精品| 亚洲精品一卡二卡三卡福利视频网站| 人澡逼| 亚洲毛片久久| 亚洲天堂一区二区久久| 天天射影院| 亚洲色性情三级| 中文字幕综合人妻| 9I1性色影院| 天天干天天操天天操夜夜操天天操| 综合影院永久入口国产| 99久久e免费热视| 一区二区 韩日AV| 玖玖爱一区在线| 亚洲久草AV色图| 午夜性生活av免费在线看| 日日日日做夜夜夜夜无码| 人妻日日干| 理论久久婷婷网 8| 亚洲乱色视频一区、二区在线| 激情久久日韩精品中文字幕麻豆| 91精品网站| 国产黄色影片在线观看| 五月天激情四射| 久草男人天堂| 欧美色图20p| 欧亚性爱在线视频| 日韩精品三区四区| 欧美色91| 人人插人人摸人人| 日本亚洲vr欧美不卡高清专区| 无毛精品| 久久精品国产AV一区二区三区| 婷婷色综合| 天天操天天日天天干| 综合97| 日韩人妻无码专区| wuyechaopeng| 国产中文大片资源中文字幕| 亚码激情| 国产精品香蕉| 伊人久久婷婷| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 人人摸人人干人人拍97| 亚洲综合码| 欧美天天综合在线| 日韩成人电影AV| 骚妻少妇精品性色无码四色A V| 黄色免费网| 99超碰色| 不卡日本一区二区| 深夜啪啪啪视频免费| 97中文字幕一区| 亚洲日韩美国人妻| 天天操熟妇| 亚洲人妻中文高清| 射丝袜大香蕉| 亚洲成a人在线观看久| 久久超碰大香蕉| 日韩啊V| 天天综合网1| 欧美性爱精品七区| 欧美日韩国产电影| 国产无码精品高清| 免费97视频| 久久91精品国产9丨久久分亭| 一区| 97人人超| 日韩97P| 婷婷亚洲中文字幕在线| 91精品国产91综合久久蜜臀| 人妻夜夜爽天天爽麻豆三区网站| 丝袜加勒比| 欧美日韩99| 欧美性91| 成人综合网 欧美| 人人贴人人摸| 日日干夜夜欢| 中文字幕成人| 国模私拍一区二区三区神乳| 色色综合97| 播播亚洲小说亚洲| 亚洲少妇视频| 久久手机好看网站| 中文字幕乱在线伦视频中文字幕乱码在线 | 99无码视频| 成·人免费午夜在线观看| 久久a久久| 国产高清精品一区二区三区毛片| 亚洲人综合| 玖玖婷婷五月天| 欧美乱伦专区| 久久综合精品一区二区三区| 欧美性爱伊人| 欧美精品成人一区二区在线观看 | 俞拍久久国应视频| 亚洲人在线成线成人| 国产日韩在线播放av| 啊啊啊好大好湿| 99热精品在线观看| 亚洲国产精品无码AV久久久| 91久久精品美女高潮喷水| 欧美亚性天堂| 秋霞久久亚洲精品成人| 91黄站| 狠操91,com| 国产伦精品一区二区三区视频女| 收看日本人日bb| 久热精品在线| 99热精品国产| 中文字幕 一区二区 亚洲无码| 操逼免费视频无码国产| 亚州综合在线| 国产风韵犹存熟妇三区| 女人妻一区| 人妻中文字幕精品无码 | 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 青青草视频爽一爽| 色丁香久久| 一区二区三区亚洲| 久久免费少妇| 人妻大相焦在线| 欧美78p| 成人国产精品三级A片| 在线播放免费av福利片| 爱逼综合| 一区二区三区麻豆| 午夜九九| 99re在线视频| 欧美性爱网97| 日本精品免费一区二区三区四区| 超91综合网| 男女一级A片大黄,一进一出| 日本女优在线视频福利| 在线观看高清AV| 欧美亚洲91| 青娱乐黄色录像| 日韩人人精品| 东京热大香焦| 免费男人的天堂| 国产高清在线自在拍69| 加勒比海成人视频网 | 青青青在线高清视频在线一二三四区 | 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 爱射综合| 伊人婷婷五月天| 久草福利在线资源站| 天天摸夜夜添无码小视频| 天天射天天操天天干天天吃2018| 十八禁啪啪视频| 国产强奸AV在线| 极品销魂美女一区二区| 欧美日韩插逼视频| 操逼视频国产无套| 免费黄色片。| 天堂8在线新版官网| 美国aaaaa一级黄片| 99re公开精品免费视频| 嫩草影院在线观看精品 | 欧美色图小说综合 | 狠狠色婷婷777| 伊人婷婷五月天| www.婷婷五月天| 91黑丝在线播放| 日本大片日本一区二区免费高清| 91xingse| 国产精品天干天干综合网麻豆| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲高清色综合| 九七色图| 老司机深夜18禁污污网站| 中国少妇XXXX做受| 亚洲激情在线一区二区| 97色插| 无码人妻精品一区二区三区九九| 欧美人人天天网| 极品出轨视频网站| 欧美亚洲| 人人干人人操人人..com| 在线综合色| 色性欧美| 都市激情人妻一区二区青青操视频 | 亚洲情色一区三区| 亚州春色| 人人妻人人爽一区二区三区| 欧美色图亚洲激情| 日日操丁香五月天| 精品一区二区亚洲国产| 色五91| 色偷综合| 青青五月天| 国产久久成人| 大香蕉免费中文| 欧美成人综合| 玖玖综合网| 国产精品亚洲一级av第二区| 熟女色综合久久| 高凊专区人人操| 少妇色综合| 亚洲综合另类| 99热这里只有精品地址| 麻豆人妻精品一区二区| 1204人成网站色www| 视频国产欧美在线播放| 99热只有这里有精品| 欧美亚洲丝袜美女电影| 青青操日韩| 一区二区三区免费岛国片| 欧美 亚洲 综合 制服| 欧洲亚洲综合| 性爱网站一区二区| 久99久视频精选| 91天美免费| 午夜精品五区| 伊人国产视频| 亚洲国产精品成人久久蜜臀| 国产在线精品偷| 国产女主播视频在线观看| 18禁无码永久免费无限制| 91美女丝袜诱惑视频| 青青草国产一区二区三区| 偷拍 欧美 日韩| 激情网五月天| 久久香蕉国产线看观看亚洲女人 | 色综合网1| 91色色综合| 色噜噜狠狠色综无码久久合欧美| 综合欧美日本三级| 日日日色色色色色| 国产白丝精品在线观看| 91超碰人人| 干超碰碰熟女| 亚洲麻豆精品二区三区| 凌辱美少妇久久aV| 99精品在线观看| 国产精品剧情| 日本有码影片下载| 亚洲美女AV无码| 欧美不卡在线美女| 九九碰九九爱97超| 国产农村妇女精品1区二区| 少妇久久| 看黑丝美女操逼青青网站| 夜草网站| 国产亚卅97| 看黄片视频免费| 人妻熟女一区二区| 人人看人人摸人人色| 老鸭窝日丰县女人| 特污免视频| 精品久久久久9999| 欧美三级一级| 天天激色| 久久风骚城市| 婷婷色影院| 男人的午夜天堂| 欧美日韩人人精品| 自怕偷自怕亚洲精品| 日韩精品9999| 日韩一区二区三区四区五区| 欧美淫乱视频| 国产欧美日韩在线观看麻豆传媒公司| 亚洲高清综合网| 九九激情网| 激情黄色片在线观看| 亚洲自拍欧美国产首页网曝| 无码WWW免费视频网站| 国产三级中文字幕粉嫩| 激情av| 日韩性爱长视频免费| 免费网站观看www在线观| 亚一综合久久久久久久久久| 99精品无码| 亚洲第一页欧美| 乱论91| 大香蕉淫人| 亚洲丝袜色图| 色噜噜人妻丝袜a∨先锋影 | 精品国产无码中文| 人伦四五区| 午夜呻吟欧美| 人人摸.人人色| 中文字幕在线免费观看 | 91美女视频在线观看| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 亚洲全色网| 色偷偷色偷偷欧美日韩| 99热官网| 操迟操逼在巾线Fre看| 精品超碰色| 蜜臀人妻少妇久久在线观看| av婷婷色婷婷色六月| 中文字幕精品一区二| 91久热| 天操老女人| 色婷婷丁香五月| 综合伊人网12色| 78操B| 精品一二三区女同 | 久久日韩肥臀| 久污| 97超碰9| 久久久久久波多野吉衣高潮| 男人的天堂不卡一区二区 | 欧美91久久久久| 伊人久久亚洲中文字幕| 久久欧美按摩999| 视频分类 国内精品| 国产三级资源在线观看| 麻豆av一区二区| 久久久久久久久久久999| 黄页18禁| 激情av| 大地资源在线观看中文第二页| 国产真乱mangent| A级在线视频| 综合97| www.男人的天堂| 国产久9| 天堂亚洲精品| 日韩欧美久久婷婷网站| 亚洲s色图| 婷婷香网站| 91视频观看网站| 动漫片子网站3黄| 东京热男人的天堂网| 99精品在线播放| 国内精品久久久久影院亚洲| 中文字幕av乱伦| 日本操BAV| 成人美女av| 黄网色一区二区三区四区精品| 激情啪啪拍91| 丁香婷婷九月| 久久综合激情| 99无码视频| 色999人与兽| 91xingse| 大香蕉十区| 神马久久中文字幕| 免费看国产大AB| av久日| 亚洲日本大香蕉1| 日韩天天综合| 天天射天天操天天干天天吃2018| 日韩操啪| 18禁免费视频| 久久‘黄片视频| 久久久久成人蜜桃精品| 4141514逼喷水三级片| 亚洲欧美九九九| 97干天天| 九t超碰| 少妇被c 黄 免费观看| n1038 一二三区| 狠狠图片青青草| 亚洲做性| 男女啪啪网站免费视频| 人人干黄色| 美国aaaaa一级黄片| 五月丁香色综合| 精品国产污一区二区三区| 97精品视频网站| 另类老少妇| 成人a v在线播放免费| 国产51色综合久久免费| 大香蕉九九| 偷窥自拍亚洲色图| 欧美天天在线| 欧美 亚洲 第一页 | 97干日韩| 91精品免费| 懂色Av一区二区三区| 思思热免费在线视频| 久久亚洲婷婷| 性色国产东北露脸精品视频| 一二区在线观看视频| 韩国免费播放一级毛片| 成年人一级黄色毛片大全在线观看| 国产剧情一区在线观看| 天天内射| 国产精品香蕉| 中文字幕123| 久久久穴999| 国产精品一区在线播放| ,成人免费啪啪视频| 五月天大香蕉| 加勒比性爱成人在线| 国产福利合集| 日韩不卡a级视频专区| 91网亚洲| 97欧美综合| 国产一区二区av综合| 久久久久久久久久久97| 亚洲高清91| 亚洲色 国产 欧美 日韩| 97超碰色五月| 91制服丝袜| 精品久久人妻成人网| 日日夜夜国产综合| 啊啊啊啊啊在线| 久久精品中文字幕观看| 97色色色综合网站| 91美女视频在线观看| 99久久精品国产高潮| 久久夜精品一区二区三区| 超碰午夜| 爽爽淫人网| 久久精品操| 中文字幕性感少妇av| 亚洲综合69| 国产黄色在线播放观看| 五月丁香激情啪啪| 麻豆天美在线| 国产视频一区二区免费| 人妻激情在线视频| 人妻系列无码专区中文有码| 亚洲区限制级| AV一区观看| 国精品一区二区三| 黄色香蕉视频网站一区| 国产青一二三| 呦呦一区| 亚洲天堂 视频你懂的| 青青草影视蜜久久| 97任你吞精| 亚洲大色鬼| 91男女啊啊啊| 久久春色| 天天操av懂色| 成人av福利在线观看| 九X超碰| 国产日韩区| 青青草日逼视频| 亚洲国产成人精品999| 玖玖爱综合| 岛国福利在线精品播放| 9999久久久久| 亚洲国产欧美中文永久| 午夜噜噜噜| 久久色一区| {男男暴菊gay无套网站| 中 文字幕一区二区三四 五 区日 日 骚| 小说区 图片区色 综合区| 日韩激情视频| 在线观看AV片| 99精品无码| 偷拍 亚洲| 中文字幕美女91| 欧美日韩人妻婷婷一区| 能直接看AV的网站| 午夜αv| 91嫩草欧美| 凹凸久久人人| 久久久人妻| 抽查国产福利主播| 亚洲第一精品在线视频| 亚洲精品97久久中文字幕| 五月天激情网站| 日本爽爽爽爽爽爽免费视频| 中文字幕精品久久久久人妻红杏ⅰ| 美女被艹尤物视频| 干超碰碰熟女| 国产av热热色| 在线观看AV不卡| 一二三四视频中文字幕在线看| 中文字幕AV片| 久99热| 亚洲 无码 偷拍| 肉丝无码中文高清| 日本高清电影欧美色图| 3P乱轮视频| 好爽免费视频| 日韩人妻精品中文字幕| 粉嫩国产精品久久粉嫩| 久操凹凸视频| 99精品人妻| 人人妻人人色一区二区三区| 天天淫人人妻日日色| 中文字幕一区二区韩| 99999亚洲| 97公开久久| 欧美亚洲日韩人妻在线观看| 欧美黄色片在线播放| 91天美| 亚洲极品| 91中文精品日韩欧美在线 | 亚洲天堂 视频你懂的| 一区不卡在线观看av| 一区二区三区麻豆| 久久女同性恋一二区| 午夜男人天堂| 亚洲高清在线| 一区二区三区黄片免费观看| 欧美 精品国产制服第一页| 久久精品一区一起草| 少妇人妻无码| 91狠狠综合久久| 婷婷中文网| 九九精品99| 欧美色宗合| 欧美美女视频| 骚鸭AV| 老熟女中文字幕高清| 你草精品在线视频| 久jiu久神马影院| 五月天丁香网| 91chinese在线| 欧日a| 中文字幕精品一区二区精| 亚川综合视频| 99久久亚洲精品无码毛片潘甜甜| 97久久久网站| 久欲AV| 99国内熟女露脸视频| 天天综合影院91| 婷婷色网| 91熟女熟妇视频网站| 久久五月视频| 俺去俺来也在线www| 午夜精品久久久久久久99蜜桃一| 精品欧美А∨无码黑人大荫蒂| 思思热在线视频在线| 亚洲在线网站| 熟女激情综合网| 深夜福利黄片| 成人av在线播放| 日韩簧片免费看| 一区,二区,三区网站| sss视频华人在线| 97干com| 91老司机在线视频免费观看| 啊a一区在线| 一区二区三区网站日日骚| 夜夜操天天肏| 久久亚洲天天做| 天天舔九色婷婷| 色悠久久久av| 久久久成人免费av电影| 青草伊人久久| 91天天综合日韩欧美| 日日夜夜免费| 欧美人黑A片无码免视费| 精品亚洲一区在线观看| 老司机天天操| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 91在线国产后入风骚翘臀美女素人| 男人的亚洲天堂| 公司1区2区3区精产精| 亚洲人妻久久久| 九九九九国产| 青青免费在线视频一区| 亚欧视频在线| 婷婷六月色| 亚洲男人的天堂V| 日本99一区二区| 亚洲成人AB| 亚洲精品97| 人人操人人插人www| 99视频内射三四| 97蜜桃综合| 福利天堂| 好吊色青靑草| 中文字幕日韩精品久久| 中国乱伦一区二区| 免费视频在线观看啊啊啊啊啊| 成人热久久精品| 蜜臀一二三区| 啊啊啊免费视频| 免费黄色片。| 亚洲人成网www| 欧美日韩婷婷中文| 33044男人的天堂深夜备| 亚洲性爱成人| 国产成人精品日本视频| 欧美系列在线一区二区| sss视频华人在线| 激情四射婷婷六月天| 极品美女嘿咻| 黑人白女精品一区| 强奸乱亚洲| 精品一区二区三区四区外站| 一二三区精品视频| 国产精品干干干| 中文字幕一区二区三区蜜臀| 超碰97首页| 亚洲色人| 深爱五月婷婷| 美女干逼2| 无遮挡又黄又刺激的视频| 蜜臀AV网站| 亚洲蜜臀懂色| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 人人操我人人干| 日本亚洲vr欧美不卡高清专区| 日日嗨AV一区二区夜夜| 蜜臀久久99精品久久久久久-DVD原版全| 国产浮力影院第1页| 男人天堂站| 九九九九九九精品| 国产99久久99热这里只有精品15| 天天干天天操天天拍| 78精品在线| 日韩不卡毛片Av免费高清| 特级大荫道BBwBBwBBW| 综合97| 99久久综合| 综合性视频99| 无码精品蜜桃一区二区三区ww| 精品久久久久瑟瑟| 国产午夜精品理论片一二三区区| 亚洲成人免费在线| 久久久九九| 国模少妇一区二区三区| 330dv亚洲成年视频网| 黄页av| av天天在线观看| 91 天天综合| 久久久一区二区三区四曲免费听| 激情久久日韩精品中文字幕麻豆| 日韩av免费一级电影| 91夜色chaopeng| 国产在线播放成人免费| 5月婷婷6月六月丁香| 青青草五月份天| 久久精品国产亚洲AV无码电影| 99久久9| 日本高清_区二区三区 | 91精品久久久久五月天精品| 亭亭丁香激情| .精品人妻一区二区三| 嗯嗯啊啊亚欧精品| 亚洲天堂男人天堂网| 深夜操逼网| 后入国产| 色婷婷成人综合| 久久超碰国产一区二区三区| 无码人妻丰满熟妇奶水区毛片| 毛片久久| 国产传媒日本欧美专区| 人人操肉肉| 2026国产精品视频| 蜜乳AV免费观看| 天综合网欧美| 91天堂色男人的天堂| 亚洲交性| 欧美精品人妻视频| 92大香蕉| 超碰亚洲欧美日韩无| 国产精品人妻免费精品| 久久国99999| 国产精品制服丝袜清纯唯美| 国产精品久久久777| 欧美日韩中文亚洲v在线综合| 欧美亚洲韩国视频十五区 | 啊啊啊免费视频| a男人的天堂| 日小BB小视频| 午夜久久久| 婷婷久久综合久| 蜜臀久久99精品久久久久久婷婷| 欧美在线伊人色| 国产探花精品在线| 天天做天天爱| 久久精品老司| 色噜噜婷婷| 欧洲在线性爱视频| 亚洲 欧美 中文 日韩超碰 | 国产亚洲精品美女| 大香蕉黄色一区| 婷婷av在线中文字幕| 日韩97精| 97中文天堂| 一本色道久久综合亚洲二区三区| 在线不卡视频| 高清无码一区二区三区| 夫妻AV网站| 国模不卡一本二本三电影| 国产 丝袜 欧美中文 另类| 国产路线专区| 俞拍自拍| 青青草视频爽一爽| 久久99精品视频| 秋霞一集毛片观看| 欧美日韩青操| 97国产精品国| 国产一区二区欧美日本| 国产精品不卡一区二区三区av| 天天操天天日天天干| 一本正道久久熟女| 国产精品视频白浆免费| 极品肉射| 久草电影网| 东北女人| 中文字幕艹艹| 99在线观看| 成人福利视频网| 92性色国产午夜福利在线661| 国产精品久久久久久久久久久久久久吹| 日少妇亚洲版| 激情丁香五月婷婷| av天堂手机版追回| 国产精品点击进入在线影院| 97香蕉网| 97国产|免费| 九九五月天| 国产精品久久久久久久久久久久久久久| 高清不卡一二三区视频......| 日韩午夜啪啪视频| 婷婷久久五月综合激情| 91熟女在线| 亚洲欧美内射| 狠狠干妹子| 色九九九综合| 天天天天天天天天综合| 999日韩中文精品观看视频。| 99∨VTV| 久热大香蕉| 91丨九色丨大屁股| 亚欧Av| 亚洲一级黄色毛片| 国产品精品自在在线午夜免费| 国产精品另类| 欧美性高潮在线| 色天使AV天堂| 久热精品在线| nuu12国产麻豆精品| 国产午夜福利合集| 麻豆人妻偷人精品无码视频| 在线小说视频一区| 日本好吊色视频| 亚洲色图第四色| 欧美在线 亚洲| 亚洲超碰综合网| 美女91色黄18| 高清不卡国产| 97露脸精品丝袜| 欧美熟妇精品黑人巨大一二三区| 亚洲国产精品乱码在线观看| 在线啊啊啊啊| 久久不卡一区二区|