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

ARTICLE DETAIL

資訊詳情

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

SpringBoot+Vue停車(chē)場(chǎng)管理系統(tǒng)畢設(shè)全解析:從架構(gòu)設(shè)計(jì)到部署實(shí)戰(zhàn)

SpringBoot+Vue停車(chē)場(chǎng)管理系統(tǒng)畢設(shè)全解析:從架構(gòu)設(shè)計(jì)到部署實(shí)戰(zhàn) 做畢設(shè)選“SpringBootVue停車(chē)場(chǎng)管理系統(tǒng)”這個(gè)題目的人這兩年是真的多。原因也很實(shí)在技術(shù)棧主流、業(yè)務(wù)場(chǎng)景清晰、前后端分離的架構(gòu)踩中當(dāng)下企業(yè)開(kāi)發(fā)的主流范式答辯時(shí)既能講業(yè)務(wù)又能講技術(shù)怎么都有話說(shuō)。不過(guò)題目選得容易真正落地卻有不少坑——版本兼容、權(quán)限控制、數(shù)據(jù)庫(kù)設(shè)計(jì)、打包部署每一步都有可能卡住你三五天。我前前后后幫人看過(guò)不少這個(gè)題目的代碼自己也完整搭過(guò)一版這篇就把整個(gè)項(xiàng)目的設(shè)計(jì)和實(shí)操細(xì)節(jié)拆開(kāi)揉碎講一遍給正在做這個(gè)畢設(shè)的同學(xué)當(dāng)個(gè)參考。先說(shuō)清楚這套系統(tǒng)是做什么的管理員登錄后臺(tái)維護(hù)車(chē)位信息、管理月卡用戶、設(shè)置計(jì)費(fèi)規(guī)則用戶端可以注冊(cè)登錄、綁定車(chē)牌、查看車(chē)位余量、繳納停車(chē)費(fèi)、申請(qǐng)?jiān)驴āU麄€(gè)系統(tǒng)跑在SpringBootJPA/MyBatis這套后端上前端用Vue全家桶做SPA單頁(yè)應(yīng)用通過(guò)RESTful API通信。麻雀雖小五臟俱全該有的模塊一個(gè)不少用來(lái)做畢業(yè)論文的技術(shù)承載面足夠?qū)挾颐總€(gè)模塊都能引出對(duì)應(yīng)的技術(shù)點(diǎn)寫(xiě)到論文里不愁沒(méi)有內(nèi)容。1. 項(xiàng)目定位與整體設(shè)計(jì)思路1.1 為什么選SpringBootVue這套組合畢業(yè)設(shè)計(jì)的技術(shù)選型第一原則不是“哪個(gè)最屌”而是“哪個(gè)最穩(wěn)、最能讓你順利畢業(yè)”。SpringBootVue正好踩在這個(gè)平衡點(diǎn)上。從后端看SpringBoot把Spring的配置地獄徹底壓平了你不需要理解復(fù)雜的XML配置幾個(gè)注解就能把接口跑起來(lái)。這對(duì)精力上要兼顧論文和找工作的應(yīng)屆生來(lái)說(shuō)非常友好。更關(guān)鍵的是SpringBoot的自動(dòng)裝配原理、內(nèi)嵌Tomcat、Starter機(jī)制這些都是答辯時(shí)的經(jīng)典提問(wèn)點(diǎn)屬于“你稍微準(zhǔn)備一下就能答好”的送分題。從前端看Vue的學(xué)習(xí)曲線比React平滑中文資料多遇到問(wèn)題一搜就有答案。Vue的雙向綁定讓表單處理變得很直觀路由、狀態(tài)管理、組件通信這些概念理解起來(lái)也不費(fèi)勁。更重要的是Vue全家桶你能寫(xiě)明白“響應(yīng)式原理”“虛擬DOM”“路由守衛(wèi)”這幾個(gè)點(diǎn)論文的技術(shù)分析章節(jié)就有著落了。這套組合還有一層隱性?xún)?yōu)勢(shì)社區(qū)活躍度極高。你寫(xiě)到某一步卡住了不管是CSDN還是GitHub幾乎都能找到現(xiàn)成的解決方案不會(huì)像小眾框架那樣問(wèn)遍全網(wǎng)無(wú)應(yīng)答。1.2 功能模塊拆解從業(yè)務(wù)需求推導(dǎo)架構(gòu)做畢設(shè)不要一上來(lái)就寫(xiě)代碼先把業(yè)務(wù)流程理清楚。停車(chē)場(chǎng)管理系統(tǒng)核心是“車(chē)進(jìn)場(chǎng)、車(chē)出場(chǎng)、收錢(qián)、管卡”這個(gè)閉環(huán)圍繞它展開(kāi)功能模塊管理員端車(chē)位管理增刪改查車(chē)位、設(shè)置車(chē)位類(lèi)型、訂單管理查看收費(fèi)記錄、處理異常訂單、月卡管理審核月卡申請(qǐng)、續(xù)期、退卡、用戶管理禁用/啟用賬號(hào)、計(jì)費(fèi)規(guī)則設(shè)置按時(shí)計(jì)費(fèi)或按次計(jì)費(fèi)、數(shù)據(jù)統(tǒng)計(jì)看板今日營(yíng)收、車(chē)輛進(jìn)出趨勢(shì)、車(chē)位利用率。用戶端注冊(cè)登錄、綁定車(chē)牌、實(shí)時(shí)車(chē)位余量查看、停車(chē)記錄查詢(xún)、在線繳費(fèi)微信/支付寶模擬支付即可、月卡申請(qǐng)與續(xù)費(fèi)、個(gè)人資料維護(hù)。模塊劃分上建議遵循“高內(nèi)聚、低耦合”。車(chē)、訂單、用戶、計(jì)費(fèi)這四塊盡量獨(dú)立成package各模塊之間只通過(guò)Service接口交互不要互相直接拆內(nèi)部實(shí)現(xiàn)。這樣寫(xiě)的好處是第一你論文里可以畫(huà)出清晰的模塊架構(gòu)圖答辯時(shí)有東西可講第二后期維護(hù)和加功能不會(huì)牽一發(fā)而動(dòng)全身。我見(jiàn)過(guò)很多人的畢設(shè)代碼是Controller里堆了兩千行所有業(yè)務(wù)邏輯全寫(xiě)在接口里數(shù)表和訂單表強(qiáng)耦合。這種代碼跑起來(lái)沒(méi)問(wèn)題但答辯時(shí)老師看一眼源碼問(wèn)一句“你這個(gè)層與層的職責(zé)怎么劃分的”基本就啞火了。所以設(shè)計(jì)階段多花半天畫(huà)清楚模塊關(guān)系圖后面寫(xiě)代碼能省不止兩天。1.3 技術(shù)棧選型與版本選擇別小看這個(gè)環(huán)節(jié)技術(shù)棧列表是論文里最顯眼的部分也是答辯老師最?lèi)?ài)盯著看的部分。推薦一套親測(cè)穩(wěn)的組合層級(jí)技術(shù)選型說(shuō)明前端框架Vue 2.6 Vue Router 3 Vuex用Vue 2是因?yàn)榻坛套疃唷⒆畛墒霦lement UI也完美兼容Vue 3項(xiàng)目如果時(shí)間充裕也可以但配套組件庫(kù)要先確認(rèn)兼容性UI組件庫(kù)Element UI表格、表單、對(duì)話框都有現(xiàn)成組件幾行代碼就能拼出后臺(tái)管理界面省下大把寫(xiě)CSS的時(shí)間后端框架SpringBoot 2.5.xJDK8最高兼容組合網(wǎng)上的教程大部分基于這個(gè)版本遇到問(wèn)題容易搜到答案你非要上Spring Boot 3.x就得配JDK17很多坑等著你填ORM層MyBatis-Plus單表CRUD不用寫(xiě)SQL自帶分頁(yè)插件比原生MyBatis省一半工作量數(shù)據(jù)庫(kù)MySQL 5.7 / 8.05.7穩(wěn)定8.0性能更好兩個(gè)版本語(yǔ)法上基本無(wú)感隨便選認(rèn)證方案JWT Spring Security無(wú)狀態(tài)認(rèn)證前后端分離項(xiàng)目標(biāo)配答辯能講的東西多構(gòu)建工具M(jìn)aven 3.6.主流中的主流IDEA內(nèi)置支持直接用它build就行這里特別提醒一句版本不是越新越好尤其是畢設(shè)這個(gè)場(chǎng)景。你在搜索時(shí)如果發(fā)現(xiàn)“SpringBoot版本太高”引發(fā)配置類(lèi)找不到、依賴(lài)沖突等問(wèn)題大概率是用了3.x結(jié)果自己還沒(méi)意識(shí)到JDK版本沒(méi)對(duì)上。老老實(shí)實(shí)鎖死版本號(hào)按上表來(lái)能省掉大量不必要的排查時(shí)間。前端也一樣不要一上來(lái)就去追Vue 3 Vite的組合等你把Vue 2這套跑通了原理都弄明白了再去聊新特性不遲。2. 核心技術(shù)與實(shí)現(xiàn)細(xì)節(jié)解析2.1 后端SpringBoot自動(dòng)裝配原理與項(xiàng)目分層后端這塊我先說(shuō)幾個(gè)大家容易忽略但答辯會(huì)問(wèn)到的點(diǎn)。SpringBoot自動(dòng)裝配到底自動(dòng)了什么簡(jiǎn)單說(shuō)SpringBoot用EnableAutoConfiguration注解開(kāi)啟自動(dòng)裝配這個(gè)注解通過(guò)Import(AutoConfigurationImportSelector.class)去加載META-INF/spring.factories文件里聲明的所有配置類(lèi)然后通過(guò)ConditionalOnClass、ConditionalOnProperty這類(lèi)條件注解按當(dāng)前classpath和配置動(dòng)態(tài)決定哪些Bean要?jiǎng)?chuàng)建。比如你引入了spring-boot-starter-webclasspath下有DispatcherServlet它就自動(dòng)把WebMvc相關(guān)的那套Bean裝配好。放到你的停車(chē)場(chǎng)系統(tǒng)里這個(gè)原理體現(xiàn)在哪在你引入spring-boot-starter-data-jpa或MyBatis-Starter的時(shí)候SpringBoot自動(dòng)幫你裝配好了DataSource、SqlSessionFactory、事務(wù)管理器。你不需要寫(xiě)一行XML配置只需要在application.yml里填好數(shù)據(jù)庫(kù)連接信息就行。這個(gè)“自動(dòng)”的背后就是條件裝配在起作用。后端分層這塊無(wú)論如何都要拆干凈。我習(xí)慣按這套結(jié)構(gòu)組織代碼com.example.parking ├── controller // 接收請(qǐng)求參數(shù)校驗(yàn)返回結(jié)果 ├── service // 業(yè)務(wù)邏輯層事務(wù)控制在這里 ├── mapper/repository // 數(shù)據(jù)訪問(wèn)層 ├── entity/model // 實(shí)體類(lèi) ├── dto // 數(shù)據(jù)傳輸對(duì)象避免實(shí)體類(lèi)直接暴露給前端 ├── config // 配置類(lèi)如SecurityConfig、CorsConfig ├── common // 統(tǒng)一返回結(jié)果、異常處理、工具類(lèi) └── utils // JWT工具、日期工具等Controller只負(fù)責(zé)“翻譯”HTTP請(qǐng)求和業(yè)務(wù)層調(diào)用不寫(xiě)任何具體業(yè)務(wù)判斷Service負(fù)責(zé)業(yè)務(wù)規(guī)則比如計(jì)費(fèi)邏輯、月卡校驗(yàn)Mapper做純粹的數(shù)據(jù)讀寫(xiě)。這么拆完論文里寫(xiě)系統(tǒng)架構(gòu)設(shè)計(jì)時(shí)直接套三層架構(gòu)的圖例說(shuō)明就行說(shuō)出去體面代碼也好維護(hù)。事務(wù)控制是必考題。停車(chē)?yán)U費(fèi)這個(gè)場(chǎng)景就是典型事務(wù)需求——生成訂單、更新錢(qián)包余額、更新車(chē)位的狀態(tài)三步必須同時(shí)成功或同時(shí)失敗。在Service層的pay()方法上標(biāo)注Transactional就好了。答辯時(shí)老師問(wèn)“你這個(gè)系統(tǒng)哪里用到了事務(wù)”你把這個(gè)案例拋出來(lái)然后順便說(shuō)出事務(wù)的ACID四大特性這就是加分項(xiàng)。2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)三范式、核心表結(jié)構(gòu)與索引策略數(shù)據(jù)庫(kù)設(shè)計(jì)直接決定你后期寫(xiě)代碼時(shí)是絲滑還是痛苦。停車(chē)場(chǎng)管理系統(tǒng)我建議設(shè)計(jì)這幾張核心表用戶表user_id主鍵username唯一索引passwordBCrypt加密存儲(chǔ)phonerole區(qū)分管理員/普通用戶status啟用/禁用create_time。車(chē)位表space_id主鍵space_no唯一location位置描述type普通/VIP/新能源充電車(chē)位status空閑/占用/維修price_per_hour。訂單表order_id主鍵order_no業(yè)務(wù)編號(hào)user_id關(guān)聯(lián)用戶plate_number車(chē)牌號(hào)space_id關(guān)聯(lián)車(chē)位start_time、end_timetotal_amountstatus進(jìn)行中/已完成/已取消/異常。月卡表card_id主鍵user_idplate_numberstart_dateend_datestatus待審核/生效/過(guò)期/退卡注意一個(gè)用戶可能有多輛車(chē)所以車(chē)牌號(hào)要獨(dú)立存。計(jì)費(fèi)規(guī)則表rule_idrule_nameunit_priceunit_type按小時(shí)/按次max_daily_charge封頂值start_time/end_time可設(shè)置夜間優(yōu)惠時(shí)段。設(shè)計(jì)時(shí)有三條建議第一時(shí)間字段統(tǒng)一用datetime或timestamp別用字符串存后續(xù)計(jì)算停車(chē)時(shí)長(zhǎng)、統(tǒng)計(jì)營(yíng)收會(huì)非常崩潰第二價(jià)格字段用decimal(10,2)絕不用float浮點(diǎn)數(shù)的精度問(wèn)題在計(jì)費(fèi)場(chǎng)景是不可接受的第三常用的查詢(xún)條件字段記得加索引——用戶停車(chē)記錄按user_id查車(chē)位列表按status篩選訂單表按order_no查明細(xì)這些都是高頻率查詢(xún)。索引不是越多越好每個(gè)表3~5個(gè)就夠?qū)懖僮黝l繁的表再多就反而拖慢性能了。2.3 前端Vue路由配置、插槽與組件通信前端這塊很多人上來(lái)就寫(xiě)頁(yè)面寫(xiě)到一半發(fā)現(xiàn)代碼亂成一團(tuán)。先用組件化的思路拆頁(yè)面結(jié)構(gòu)views/Login.vue登錄/注冊(cè)頁(yè)views/UserHome.vue用戶端首頁(yè)車(chē)位余量、入場(chǎng)繳費(fèi)、月卡申請(qǐng)views/AdminDashboard.vue管理員工作臺(tái)數(shù)據(jù)統(tǒng)計(jì)views/Admin/OrderList.vue訂單管理views/Admin/SpaceManage.vue車(chē)位管理views/Admin/CardManage.vue月卡管理路由配置要分角色這是Vue路由的核心考點(diǎn)。用戶和管理員看到的頁(yè)面不一樣不能就粗暴地把所有路由堆在一起。做法是利用Vue Router的meta字段配合前置守衛(wèi)// router/index.js const routes [ { path: /login, component: Login }, { path: /, component: Layout, redirect: /dashboard, meta: { requiresAuth: true, roles: [ADMIN] }, children: [ { path: dashboard, component: AdminDashboard }, { path: orders, component: OrderList } ] }, { path: /user, component: Layout, redirect: /user/home, meta: { requiresAuth: true, roles: [USER] }, children: [ { path: home, component: UserHome } ] } ] router.beforeEach((to, from, next) { const token localStorage.getItem(token) if (to.meta.requiresAuth !token) { next(/login) } else if (token to.meta.roles !to.meta.roles.includes(store.state.role)) { next(/403) // 沒(méi)權(quán)限跳轉(zhuǎn) } else { next() } })路由守衛(wèi)幾乎是前端面試題的??湍隳苤v明白“它是怎么攔截未登錄用戶的”“如何按角色控制訪問(wèn)”答辯時(shí)這一塊就穩(wěn)了。如果再能說(shuō)說(shuō)動(dòng)態(tài)路由也就是從后端按角色返回路由表、前端router.addRoutes動(dòng)態(tài)注冊(cè)那技術(shù)深度一下子就上去了。組件通信是Vue的另一個(gè)高頻考點(diǎn)。停車(chē)余量這個(gè)數(shù)據(jù)用戶首頁(yè)、管理員看板、車(chē)位狀態(tài)列表都要用。這種跨組件共享的狀態(tài)就別用props一級(jí)級(jí)傳了直接用Vuex管理。在store里定義parkingSpaces模塊接口返回后commit到state任何組件里mapGetters一下就能用。至于$emit自定義事件傳參適合父子組件間簡(jiǎn)單交互比如“點(diǎn)擊車(chē)位格子觸發(fā)彈窗顯示詳情”。插槽這塊容易被忽略但實(shí)際用起來(lái)很香。我在做管理員訂單列表時(shí)Element UI的el-table里需要根據(jù)不同訂單狀態(tài)顯示不同顏色和操作按鈕待支付、已完成、異常單。這時(shí)候就用到插槽el-table-column label狀態(tài) template #default{ row } el-tag :typestatusTagMap[row.status]{{ statusTextMap[row.status] }}/el-tag /template /el-table-column這樣你就不需要為每一種狀態(tài)單獨(dú)寫(xiě)一列數(shù)據(jù)和展示分離代碼簡(jiǎn)潔也不會(huì)重復(fù)。答辯講到“組件復(fù)用”的時(shí)候把插槽和具名插槽舉出來(lái)當(dāng)例子說(shuō)服力很強(qiáng)。3. 實(shí)操過(guò)程與核心環(huán)節(jié)實(shí)現(xiàn)3.1 后端工程搭建從IDEA新建到第一個(gè)接口跑通這一步我會(huì)手把手拆解實(shí)際操作過(guò)程因?yàn)楹芏嗳丝ㄔ谧铋_(kāi)始的環(huán)境配置上。第一步本地環(huán)境檢查。JDK必須是1.8這個(gè)很重要——你裝了JDK17再配SpringBoot 2.5就會(huì)出問(wèn)題。在終端敲java -version確認(rèn)。接著裝Maven 3.6或3.8不一定要單獨(dú)裝IDEA自帶Bundled Maven也能用但用獨(dú)立Maven更方便管理本地倉(cāng)庫(kù)。第二步在IDEA里新建項(xiàng)目。選擇Spring Initializr填好Group和Artifact依賴(lài)這里沒(méi)必要勾太多——先勾Spring Web、MyBatis Framework或Spring Data JPA、MySQL Driver、Lombok這幾個(gè)。Lombok一定要勾它能用注解幫你自動(dòng)生成getter/setter省掉的代碼量是肉眼可見(jiàn)的。第三步配application.yml。注意數(shù)據(jù)庫(kù)連接串的寫(xiě)法server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/parking_system?useUnicodetruecharacterEncodingutf-8useSSLfalseserverTimezoneAsia/Shanghai username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: mapper-locations: classpath*:mapper/**/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImplserverTimezoneAsia/Shanghai這個(gè)參數(shù)不加數(shù)據(jù)庫(kù)連接會(huì)報(bào)時(shí)區(qū)錯(cuò)誤這是新手最常遇到的經(jīng)典坑之一。log-impl配置成StdOutImpl后控制臺(tái)能直接看到SQL日志調(diào)試聯(lián)調(diào)的時(shí)候太方便了。第四步寫(xiě)第一個(gè)接口“查詢(xún)空閑車(chē)位列表”。Controller、Service、Mapper各層各寫(xiě)幾行代碼。跑起來(lái)后瀏覽器訪問(wèn)http://localhost:8080/api/spaces/available能在JSON里看到數(shù)據(jù)就說(shuō)明后端全鏈路通了。這一步的意義在于后端的骨架搭起來(lái)了后面每加一個(gè)模塊都按同樣的方式復(fù)制粘貼就行。我個(gè)人的習(xí)慣是每寫(xiě)完一個(gè)模塊就啟動(dòng)跑一遍絕不等全部寫(xiě)完再啟動(dòng)。真等到全寫(xiě)完再調(diào)一百個(gè)報(bào)錯(cuò)疊在一起排查起來(lái)會(huì)讓人崩潰。3.2 前端工程搭建Vue安裝、依賴(lài)配置與開(kāi)發(fā)環(huán)境避坑前端這塊很多同學(xué)掛在環(huán)境配置上所以我重點(diǎn)說(shuō)一下踩坑細(xì)節(jié)。Vue環(huán)境的完整安裝路徑先裝Node.js注意版本不要用最新的推薦16.x的LTS版本。裝完了終端敲node -v和npm -v確認(rèn)。然后安裝Vue CLI腳手架npm install -g vue/cli。如果這一步在國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境下很慢就配一下npm淘寶鏡像源npm config set registry https://registry.npmmirror.com。這是必須的一步否則你后面npm install裝依賴(lài)可能要等到天荒地老。創(chuàng)建項(xiàng)目在項(xiàng)目根目錄下執(zhí)行vue create parking-web。選擇Manually select features手動(dòng)勾選Vue Router、VuexCSS預(yù)處理器我習(xí)慣選Less。這樣創(chuàng)建出來(lái)的項(xiàng)目自帶路由和狀態(tài)管理的目錄結(jié)構(gòu)不用自己從零搭。注意靈犀一點(diǎn)Vue CLI 5.x版本創(chuàng)建的是Vue 3項(xiàng)目如果你想按上文說(shuō)的用Vue 2創(chuàng)建時(shí)選Vue CLI的Preset或版本選項(xiàng)或者直接在腳手架里手動(dòng)指定Vue版本這個(gè)細(xì)節(jié)一定要提前確認(rèn)。裝Element UI和Axiosnpm install element-ui -S npm install axios -S npm install echarts -S # 后面做統(tǒng)計(jì)圖表用封axios請(qǐng)求和統(tǒng)一Token處理在src/utils/request.js里創(chuàng)建一個(gè)axios實(shí)例設(shè)置baseURL為http://localhost:8080/api。請(qǐng)求攔截器里從localStorage取token塞到請(qǐng)求頭響應(yīng)攔截器里處理403、500等錯(cuò)誤碼同時(shí)把后端返回的結(jié)構(gòu)統(tǒng)一剝離。service.interceptors.request.use(config { const token localStorage.getItem(token) if (token) { config.headers[Authorization] Bearer token } return config }) service.interceptors.response.use( response { if (response.data.code ! 200) { Message.error(response.data.message) return Promise.reject(new Error(response.data.message)) } return response.data }, error { if (error.response.status 401) { localStorage.removeItem(token) router.push(/login) } return Promise.reject(error) } )這一套寫(xiě)完所有頁(yè)面直接調(diào)用request.get(/xx)就行不再需要每個(gè)接口都重復(fù)寫(xiě)token邏輯。答辯時(shí)老師問(wèn)你“你怎么做用戶認(rèn)證的”從這個(gè)攔截器講起把JWT的流程完整說(shuō)出來(lái)深度就夠了。開(kāi)發(fā)環(huán)境跨域解決前后端分離開(kāi)發(fā)時(shí)前端地址是localhost:3000后端接口是localhost:8080瀏覽器默認(rèn)會(huì)攔截跨域請(qǐng)求。最簡(jiǎn)單的方案是在前端vue.config.js里配置devServer的proxymodule.exports { devServer: { proxy: { /api: { target: http://localhost:8080, changeOrigin: true } } } }這樣前端的/api請(qǐng)求會(huì)被代理到后端地址瀏覽器視角是“同源請(qǐng)求”跨域問(wèn)題直接消解。同時(shí)后端也要配置CORS策略雙保險(xiǎn)。這個(gè)點(diǎn)特別重要因?yàn)楹芏嗳寺?lián)調(diào)時(shí)一看瀏覽器報(bào)跨域就懵實(shí)際上就是少配了這一個(gè)小文件。3.3 核心業(yè)務(wù)邏輯實(shí)現(xiàn)計(jì)費(fèi)規(guī)則、月卡校驗(yàn)與數(shù)據(jù)統(tǒng)計(jì)停車(chē)計(jì)費(fèi)是業(yè)務(wù)邏輯的核心也是答辯時(shí)最容易展示技術(shù)含量的地方。我建議這樣設(shè)計(jì)計(jì)費(fèi)服務(wù)入場(chǎng)記錄startTime出場(chǎng)時(shí)先算出時(shí)長(zhǎng)然后調(diào)用計(jì)費(fèi)規(guī)則模塊按規(guī)則計(jì)算金額。// 簡(jiǎn)單演示實(shí)際項(xiàng)目要結(jié)合規(guī)則表動(dòng)態(tài)計(jì)算 Transactional public PayResult calculateAndPay(String orderNo) { Order order orderMapper.findByOrderNo(orderNo); long hours ChronoUnit.HOURS.between(order.getStartTime(), LocalDateTime.now()); // 不足一小時(shí)按一小時(shí)算這是簡(jiǎn)化的取整邏輯 if (hours 0) { hours 1; } // 如果有月卡且未過(guò)期覆蓋計(jì)費(fèi) MonthlyCard card cardMapper.findByPlateAndStatus( order.getPlateNumber(), ACTIVE); if (card ! null) { order.setTotalAmount(BigDecimal.ZERO); order.setStatus(COMPLETED); return new PayResult(order, MEMBER_CARD); } // 普通計(jì)費(fèi)調(diào)用規(guī)則表里的單價(jià) BigDecimal amount ruleMapper.getCurrentRule() .getUnitPrice().multiply(BigDecimal.valueOf(hours)); // 封頂邏輯 ... order.setTotalAmount(amount); order.setStatus(COMPLETED); orderMapper.updateById(order); spaceMapper.updateStatus(order.getSpaceId(), FREE); return new PayResult(order, PAID); }這個(gè)方法的亮點(diǎn)在于把“月卡優(yōu)先”和“按時(shí)段計(jì)費(fèi)”都體現(xiàn)出來(lái)了而且邏輯集中在Service層。答辯時(shí)你能說(shuō)明白“為什么要放在當(dāng)前這個(gè)方法而非拆分到Controller”“事務(wù)為什么加在這一層”那說(shuō)明你真的理解了這個(gè)系統(tǒng)的運(yùn)轉(zhuǎn)方式。數(shù)據(jù)統(tǒng)計(jì)看板是論文的亮點(diǎn)展示位。用ECharts畫(huà)幾個(gè)圖——近一周營(yíng)收柱狀圖、24小時(shí)車(chē)輛進(jìn)出折線圖、車(chē)位類(lèi)型利用率餅圖。后端提供對(duì)應(yīng)的聚合查詢(xún)接口比如用SQL的DATE_FORMAT分組統(tǒng)計(jì)每天營(yíng)收SELECT DATE_FORMAT(create_time, %Y-%m-%d) AS day, SUM(total_amount) AS revenue FROM parking_order WHERE status COMPLETED GROUP BY DATE_FORMAT(create_time, %Y-%m-%d) ORDER BY day前端拿到數(shù)組以后用ECharts幾行代碼就能渲染出來(lái)。這塊呈現(xiàn)到論文上是“可視化數(shù)據(jù)展示”放到系統(tǒng)演示環(huán)節(jié)是“哇有個(gè)大屏看板”投入產(chǎn)出比極高。3.4 發(fā)布部署Vue打包放進(jìn)SpringBoot里畢設(shè)最后驗(yàn)收通常需要交付一個(gè)能直接跑起來(lái)演示的完整系統(tǒng)。兩邊分開(kāi)部署不現(xiàn)實(shí)最簡(jiǎn)單可靠的方式是把Vue打包后的靜態(tài)文件放進(jìn)SpringBoot里用一個(gè)8080端口搞定所有。第一步前端打包。在項(xiàng)目根目錄執(zhí)行npm run build靜態(tài)資源會(huì)輸出到dist文件夾。如果你的路由用了history模式在vue.config.js里配一下publicPath: ./否則部署后靜態(tài)資源路徑會(huì)找不到頁(yè)面白屏。這一步很多教程不會(huì)細(xì)說(shuō)但是幾乎每個(gè)人都會(huì)踩到。第二步把dist整個(gè)文件夾復(fù)制到SpringBoot的src/main/resources/static目錄下。SpringBoot默認(rèn)情況下靜態(tài)文件放在這個(gè)目錄就能直接通過(guò)localhost:8080訪問(wèn)到。第三步做一個(gè)兜底路由。Vue是SPA前端路由由js控制如果用戶直接訪問(wèn)http://localhost:8080/admin/dashboard后端兜底到index.html由前端再接管路由。配置方式是在后端加一個(gè)ViewContorller或者直接寫(xiě)一個(gè)Controller處理轉(zhuǎn)發(fā)Controller public class PageForwardController { RequestMapping(value /**/{path:[^\\.]*}) public String forward() { return forward:/index.html; } }注意這里的正則表達(dá)式排除了帶點(diǎn)的路徑不會(huì)影響接口請(qǐng)求和靜態(tài)資源文件本身。第四步打包后端。在IDEA右側(cè)Maven面板里執(zhí)行clean再執(zhí)行package生成target目錄下那個(gè)parking-0.0.1-SNAPSHOT.jar。然后在命令行里執(zhí)行java -jar parking-0.0.1-SNAPSHOT.jar。瀏覽器打開(kāi)http://localhost:8080就能看到完整的系統(tǒng)了。這一個(gè)Jar包就能演示全部功能驗(yàn)收現(xiàn)場(chǎng)只需要一臺(tái)電腦。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄做了這么多次類(lèi)似項(xiàng)目我把最典型的問(wèn)題整理成速查表你可以直接拿來(lái)當(dāng)排障手冊(cè)用?,F(xiàn)象大概率原因解決方案SpringBoot項(xiàng)目啟動(dòng)失敗提示DataSource相關(guān)錯(cuò)誤沒(méi)配數(shù)據(jù)庫(kù)連接或MySQL沒(méi)啟動(dòng)檢查application.yml配置確認(rèn)MySQL服務(wù)已啟動(dòng)賬號(hào)密碼正確前端頁(yè)面白屏控制臺(tái)報(bào)靜態(tài)資源404publicPath配置不對(duì)或dist路徑不對(duì)Vue項(xiàng)目設(shè)publicPath: ./重新打包目錄確認(rèn)放到static根路徑下列表頁(yè)能打開(kāi)點(diǎn)擊查詢(xún)后報(bào)跨域錯(cuò)誤前后端跨域未處理前端配devServer.proxy后端配CorsConfig雙重保障登錄失敗一直提示用戶名或密碼錯(cuò)誤密碼沒(méi)做加密導(dǎo)致比對(duì)不一致后端確認(rèn)用的是BCryptPasswordEncoder加密和matches校驗(yàn)保存訂單后事務(wù)不生效Service類(lèi)上沒(méi)加Transactional或方法不是public檢查注解位置注意Spring對(duì)非public方法的代理限制接口報(bào)500但SQL日志沒(méi)打印MyBatis映射文件里的SQL有誤或resultType錯(cuò)誤打開(kāi)log-impl: StdOutImpl看完整SQL在Navicat里手動(dòng)跑一遍驗(yàn)證上傳的圖片顯示不了路徑不對(duì)靜態(tài)資源映射沒(méi)配置或路徑拼接錯(cuò)誤確認(rèn)圖片保存路徑和訪問(wèn)路徑一致用絕對(duì)URI拼接訪問(wèn)地址排查思路心法遇到報(bào)錯(cuò)先看最上層的異常信息不要慌著翻日志全文。大多數(shù)情況是“配置缺失”或“依賴(lài)版本沖突”兩個(gè)原因之一。SpringBoot的報(bào)錯(cuò)信息其實(shí)寫(xiě)得很貼心它會(huì)直接告訴你缺什么類(lèi)、少什么配置。按著提示一步步排查比漫無(wú)目的地搜“SpringBoot xxx報(bào)錯(cuò)”要快得多。另外說(shuō)兩個(gè)容易忽視的坑第一寫(xiě)SQL時(shí)表名和字段名盡量不要和MySQL關(guān)鍵字沖突。比如我見(jiàn)過(guò)有人把表名命名為order結(jié)果插入時(shí)永遠(yuǎn)報(bào)語(yǔ)法錯(cuò)誤因?yàn)閛rder是保留字。要么加反引號(hào)要么直接叫parking_order后者更省心。第二JWT密鑰不要寫(xiě)在代碼里硬編碼。放到application.yml里用Value注入論文里可以順帶提一句“使用配置化密鑰管理提高安全性”顯得考慮周全。同理數(shù)據(jù)庫(kù)密碼也不要寫(xiě)死在代碼里配置化是最好的習(xí)慣。答辯前一周過(guò)一遍技術(shù)問(wèn)答清單SpringBoot自動(dòng)裝配的原理是什么說(shuō)說(shuō)SpringMVC的處理流程從請(qǐng)求到響應(yīng)的完整過(guò)程。JWT認(rèn)證相比Session的優(yōu)勢(shì)在哪logout如何實(shí)現(xiàn)Vue響應(yīng)式數(shù)據(jù)的原理是什么路由守衛(wèi)在什么場(chǎng)景下用到怎么實(shí)現(xiàn)登錄攔截?cái)?shù)據(jù)庫(kù)的索引在哪些字段上建了為什么全部能用自己的話講一遍答辯基本穩(wěn)過(guò)。再補(bǔ)充一個(gè)經(jīng)驗(yàn)別忘了在GitHub上建個(gè)倉(cāng)庫(kù)從第一天就把代碼推上去。這不僅是版本管理的問(wèn)題論文里你可以寫(xiě)“項(xiàng)目使用Git進(jìn)行版本控制”然后截一張?zhí)峤粴v史圖放進(jìn)開(kāi)發(fā)工具章節(jié)真實(shí)感直接拉滿。而且萬(wàn)一代碼寫(xiě)崩了能隨時(shí)回滾到前一天能跑的版本這個(gè)安全感是任何本地備份都給不了的。我個(gè)人最后一次完整做這套系統(tǒng)的時(shí)候最有感觸的一點(diǎn)是真正花費(fèi)時(shí)間的不是寫(xiě)代碼本身而是前后端的接口定義和字段對(duì)齊。所以我會(huì)建議你們?cè)趧?dòng)手之前先把所有接口的請(qǐng)求參數(shù)、響應(yīng)結(jié)構(gòu)用表格列出來(lái)比如“POST /api/user/login 參數(shù)username,password 返回token,role,userInfo”。前端按這張表調(diào)開(kāi)發(fā)后端按這張表做實(shí)現(xiàn)兩邊各干各的也不會(huì)跑偏聯(lián)調(diào)時(shí)間能縮到極短。這個(gè)習(xí)慣哪怕畢業(yè)之后進(jìn)了團(tuán)隊(duì)做開(kāi)發(fā)一樣是剛需。最后說(shuō)一句實(shí)在話畢設(shè)的意義不在于做出一個(gè)完美無(wú)缺的商業(yè)系統(tǒng)而在于讓你完整體驗(yàn)一遍“從需求分析到設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署”的全流程。這個(gè)SpringBootVue停車(chē)場(chǎng)管理系統(tǒng)恰好能把這些環(huán)節(jié)都覆蓋到而且每一環(huán)都有足夠深的技術(shù)點(diǎn)可以挖。把這篇里面提到的細(xì)節(jié)吃透你不僅是在完成一個(gè)題目還在畢業(yè)前把一名后端開(kāi)發(fā)最核心的技能棧扎扎實(shí)實(shí)過(guò)了一遍。這套積累的含金量比成績(jī)單上的那個(gè)分?jǐn)?shù)值錢(qián)多了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
偷拍视频青青草在线视频| 神马久久久久久| 97伦综合| 亚洲精品aa久久伊人 | 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 国产成人无码a| 国产传媒一区日韩| 在线岛国新天堂8| 密臀视频一区二区三区| 嗯啊视频免费在线观看| 91黑丝美女| 久思思热视频在线观看| 亚洲精品97| 亚洲中文字幕妇伦久久| 9丨亚洲一区二区在线| 亚欧操逼片在线观看 | 嗯~啊~快点 死我视频免费看网站| 亚洲图片激情综合另类| 91久久久久久久久18| 9/A片| 91人精品妻入口| 久久黄色视频一区二区三区| 人妻丝袜一区二区三区在线| 蜜臀av网址| 亚洲色欲一区二区三区| 久久男女激情视频网站| 四虎精品永久在线播放| 欧美自拍网| 亚洲天堂美臀在线| AV天堂电影网| 国产女人成人精品视频| 精品视频一区二区| 92一区二区| 亚洲女人91| 久久亚洲天天做| 麻豆这里只有精品| 久草视频观看视频在线| 清纯唯美综合| 97这里只精品| 狠狠色一区二区中文字幕| 大香蕉乱伦视频网| 巨爆乳肉感一区二区三区竹菊影视 | 亚洲欧美日韩制服另类| 亚洲色图A| 男女香蕉一区二区| 天天射夜夜| 久久人妻精品| 强奸乱伦中文字幕AV| 久久一二三四五六七八九区| 色九九九综合| 久久99精品九九久久久婷婷| 中文字幕二区日韩天堂| 亚洲最大无码中文字幕网站| 欧美久久伊人| 人妻嗯啊啊在线播放| 91小视频| 成人 日本A片无码8888| 网页导航五月天免费一二三区| 欧美性爱中文字幕无线码| 欧美性生活男人的天堂| 国产在线观看91精品一区| 国产精品日本无码A片| 欧美乱欲| 超碰色老头| 亚洲欧美首页| 乱伦图av| 五月丁香婷婷综合| 狠狠五月天| julia在线观看久久| 啊啊啊啊啊好大好舒服想要| 欧美国产一区二区三区麻豆传媒| 欧美性,色九九| 国产精品电影| 国产精品成人在线| 91neishe| 五月开心久久AV官网| 久久精品无码熟妇一区二区三区视频导航 | 天天爽天天| 九九成人视频| 日日夜夜国产综合| 欧美性夜| 亚洲国产精品无码AV在线| 日韩乱伦影音先锋| 人人喜人人妻| 91AV天堂| 天美传媒婬乱在| 温婉少妇玩3p| 无码男人天堂| 日本孕妇一区二区视频操逼免费看 | www.亚洲成人一区| 中国小夫妻勾搭露脸淫荡对白 | 午夜国产乱伦视频| 亚洲中文日韩欧美大香蕉视频| 亚洲综合欧美| 在线v中文字幕一区二区三区| 99在线精品视频| 日日A∨| 亚洲综合色图欧美| 久草免费福利在线播放| 九九九九九九九九九五码| 91热| 亚洲一本大道中文字幕无码在线| 亚洲综合色网| 色噜噜人妻av中文字幕| 亚洲日韩国产欧美综合v| 亚洲AO在线| 日韩二三区| 夜夜嗨一区| 色狠狠 - 百度| 超硑97精品| 欧美性天天| 五月丁香亭亭| 啪啪视频免费在线观看| 欧美精品日韩久久久九| 97色在线观看| 欧美日韩精品久久久久东北老熟妇| 免费岛国一级片| 看免费一级在线播放毛片| 五月丁香大香蕉| 天美传媒Av在线| 成人av福利在线观看| 日产狠狠干| 亚洲少妇视频| 久99热| 国产精品另类| 超碰在线国产| 3P丝袜熟女 色综合| 激情接吻视频久久久久久| 欧美激情久久久久| 丰满人妻无码一区二区三区| 粉嫩AV输入| 天天操人人操狠狠插| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 黑人精品XXX一区一二区| 18一区二区三区| 日韩一级欧美一级国产一级台湾| 欧洲综合视频| 欧美高清无码免费视频高清版| 人人喜人人妻| 少妇厨房愉情理伦片bd在线观看| 亚洲大色堂| 波多野结衣一级视频| 丝袜综合| 亚洲精品国产精品乱码不99| 日韩性爱啪啪视频| 大吊色| 午夜偷拍久久熟女| 国产精品白丝www| 校园春色之综合网| 日韩黄片视频试看| 亚洲欧美日韩国产丝袜自拍中文| 人人摸人人摸人人干| 日韩超碰精品综合| 免费的黄片wwwwww| 国产欧美成人第一页在线观看| 啊啊啊啊啊好舒服视频| 天天日B夜夜干B时时操B| 肉丝无码中文高清| 人妻碰碰碰碰碰碰| 日韩女模中文造逼| 国产一区二区三区高清视频| nuu12国产麻豆精品| heyZO天然素人无码AⅤ专区| 夜夜免费视频| 日韩人妻操B| 日本三级A片网站com| 欧美男人的天堂| 色眯眯射| 婷婷五月天成人| 性色AV蜜色av色欲av| 91欧美巨乳| 日韩国产乱子伦App| 欧美极品少妇| 色性欧美| 天天摸夜夜添无码小视频| 日本幼女18+| 中国黑人三级片网站上区| 熟女人妻一区二区三区| 日韩高清黄片| 国产a片操逼| 九九九九九精品| 无码久| 情色五月天久久久| 人人妻人人操人人乐| 日韩精品中文字幕一| 2017天天操| 99在线啪| 欧美A√综合网| 日本人妻一区二区| 97在线公开视频| 成人A片男人的天堂| 国产一区96在线| 啪一啪免费视频| ,成人免费啪啪视频| 黄片www视频免费| 夜夜国自区| 嗯嗯嗯啊啊啊干死我吧| 青操影院| 日日干夜夜欢| 久午视频| 91综合站| 交换娇妻呻吟声不停中文字幕| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 日本2020一区二区| 国产综合久久久鬼色| 97人人射| 看日韩美女二区三区免费操逼视频| 囯产精品久久久久久久久久梁医生 | 中欧人妻丝袜中文字幕| 久久这里只| 2003天天干夜夜操| 夜夜嗨一区二区三区三州加勒比 | 欧美丝袜中文字幕07在线| 日韩二区三四区五区六区在线看| 91视频综合| 久久超碰天天| 天天综合~91| 男人综合网| 91美女视频。| 天天噜| 男人午夜天堂| 天天看天天干| 91c色| 综合欧美激情网| 少妇xx精品| 黄片www.| 伊人网在线观看| 久久久99999久网站| 色天堂综合| 亚洲大胆人体av| 大干人妻| 91色色网站| A级在线视频| 国产成人无码a| 日韩AV无码中文一区二区| 精品超碰国产| 欧美曰韩国产精品| 99在线精品观看视频中文| 天天操妹子| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 天堂中文资源在线bt| 五月丁香社区婷婷日韩欧美精品影院 | 欧美1727免费观看视频| 亚洲人在线| 色香在线| 精品无码少妇| 久久精品国产AV一区二区三区| 国产精品久久久久久照片| 亚洲欧洲日韩国产自在线| 天天操夜夜操| 日本人人操人人操| 色一射色一射| 国产精品乱码久久久久久| 91宗合网| 一区操逼日比视频| 精品999日本| 校园春色亚洲色图| 九九干| 精品久久久久久无码| 国产成人久久久精品免费AV| 精品国产一区二区三区久久久蜜臀| 青青欧美| 亚洲精品国产精品成人| 中文自拍欧美影视| 丁香婷婷激情五月天无毒不卡| 久久久91福利姬| 白丝被操91| 屌色在线97视频| 手机av亚洲丝袜美腿日韩第一页二页| 熟女探花啪啪| www黄片免费看com| 五十路二区在线| 日少妇视频| 国产吞精a级片激情电影| 欧美 亚洲 制服 精品| 亚洲激情欧美色图 | 九九人人操| 亚洲图片 激情小说| av三级电影在线播放| 久久老子无码午夜伦不卡| 女生自91网站| 日欧操屄| 久久久久久波多野吉衣高潮| 东京热男人的天堂| 性色av蜜臀av色欲aV| 欧美嗯啊……在线观看视频免费| 超碰久超碰久| 日本熟妇一区二区三区| 国产精品视频精品一二| 青青操日韩| 天堂中文日本在线观看| 加勒比AV天堂| 一级久久久久久久久久久| 操逼999| 成人性爱av| 一区 欧美 日韩 麻豆| 97爱| 大香网伊人久久综合网eew| 极品欧美一区二区三区| 久操九九九九| 福利视频合集| 动漫片子网站3黄| 最新国产精品| 国产大片精久久久久久| 99久久久久久亚洲精品不卡| 伊人久久亚洲中文字幕不卡| 亚洲精品毛片在线观看| 欧美 日韩 婷婷 五月| 奇米四色网| 久久色一区二区| 久久久久亚洲AV无码专区少妇| 日日A∨| 无码WWW免费视频网站| 东京热av男人的天堂| 影视综合无码少妇| 九草九九九| 色官网在线| 噜噜噜噜久久久精品免费| 色五月婷婷麻豆在| 黄色操人| 激情五月天色色| 极品少妇久久久| 青青11操操操操操操操操| 91被操| 都市激情人妻一区二区青青操视频 | 久久国产视频专区一二三| 美女操逼A A| 91爱欧美| 欧美1727免费观看视频| 国产探花日韩援交| 狠狠干妹子| 人妻久久久| 天天日天天操天天射河南省| 国产女人9999| 丁香六月天| 久久久久久久伊人精品| 久久黄黄黄| 韩国轻伦国内自拍一区| 91操人| a片偷拍视频| 97在线视频观看免费| 蜜臀久久99精品久久久久久久久| 蜜乳性色无码专日粉嫩骚逼AV| 97se亚洲综合自| 欧美91在线+|+欧美| 激情网五月天| 在线可观看的黄色网址| 亚洲春色欧美激情自拍| 午夜啊啊| 日本五区不卡| 久久久九精品| 少妇色综合| 天堂蜜桃无码视频一区二区| 乱伦av麻豆| 神马精品视频| 日本中文字幕在线电影| 成人麻豆av电影网站| 97超碰9| 亚洲精品久久一区二区三区蜜桃臀| 一道本久久棕合爱| 99色色| 亚洲图片偷拍视频区| 国内毛片无遮挡国产| 精品美女少妇一区二区| 后入式五六区| 99国内熟女露脸视频| 裸模AV女优| 91在线欧色| 操逼日韩无码 | 夜色97| 三级网站超变态精品| 啊啊啊啊嗯嗯嗯用力好爽 | www…国产操逼| 国产成人综合在线播放| 天天看精品动漫视频一区| 九九九九亚洲| 97色操| 亚洲中字慕不卡| 都市激情人妻一区二区青青操视频 | 亚洲超碰综合网| 东北女人的毛片| 99国产精品在线观看| 久久人妻视频| 伊人青青一区成人视频在线观看区| www.色婷婷| 少妇一线天久久久久久| 97WW精品| 久久9精品视频| 91久久精品国产| 亚洲国产一区二区三区在线 | 国产一线二线三线av| 97伊人超碰| 超碰导航97| 91美女精品| 97鸡把在线视频| 欧美se综合| 亚洲超碰97| 亚洲第一页第二页激情| 翔田千里Av在线| 欧美αv.com| 思思热国产在线视频| 久久久久亚洲AV无码专区少妇| 丰满岳乱妇一区二区三区| 少妇人妻太紧太深av| 嗯啊抽插大香蕉网页| 欧美专区日本专区| 精品久久久无码| 黄色高清久久无码依人| 国产热av| 91综合中文字幕| 91性高朝久久久久久久久| 中文字幕一二区二三区人妻专区| 日韩性爱电影一区| 日韩在线76| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 亚洲涩图欧美| 国产又黄又爽| 亚洲第一成人影院色播| 五月天婷婷欧美三区| 一区=区三区视频| 日本孕妇孕交| 日本色色色网站免费看不卡| 色色色欧美| www.狠狠操| 亚洲中文字幕日产无码久久| 亚洲高清综合网| 婷婷激情五月综合| 国产自制av蜜乳| 国产亚洲日本精品在线| 泰国AV在线观看| 91欧美巨乳| 91免费看一区二区三区| 免费一级毛片在线视频观看| 爱欲AV| 骚货操死你| 亚洲欧洲自拍图片专区满春格| 91精品国产麻豆国产自产在| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 亚洲综合首页| 人妻熟女av国产网站| 欧美成人精品一区二区三区| 国语精品av| www.大香| 2019天天操天天爽天天拍| 久久久女人| 不卡av在线中文字幕| 成人资源中文字幕在线观看天天| 九九九九九九免费视频| 国产日逼视频| 欧美狠狠弄| 九热中文字幕| 超碰99在线观看| 亚洲精品97中文字幕| 日韩欧美亚洲自拍偷拍| 激情自拍 校园春色| 久久久久人| 天天激情干| 中文字幕视频一区视频二区| 日躁天天爽爽| 日韩啪啪啪啪啪| 亚洲脚交| 立川理惠无码一区二区| 麻豆a'v电影| 免费一级特黄特色大片在线观看看| 91男女啊啊啊| 亚洲综合中文字幕有码| 日本在线不卡123| 97人妻人人躁人人玩人人| 亚洲小电影免费涩涩成人在线高清| 色五月综合| 人妻无码视频一区二区三区久久| 国产AV色黄看到爽| 久久久久久久久久久久黄色 | 国产强奸超碰AV| 性性欧美| 无码免费精品高清| 日本中文字幕熟妇| 综合久| 色九九九九九九| 成人性爱高清视频免费看| 91色综合色| 免费a在线播放v| 加勒比综合在线| www.91色综合| 国产精品一区二区手机看片| 亚洲熟妇乱女区二区三区| 精品国产Av无码久久久伦古装| 91人妻人人妻| 国产精品永久免费10000| 精品然女一区二区| 国产精品探花视频| 午夜九九九九九九| 亚洲伊人久久精品狠狠在线| 亚洲人妻在线一区| 99视频自拍区| 狼人综合婷婷激情四射| 先锋色眉乱伦资源| 欧美中日韩XXXX| 95精品在线| 欧美精品久久久久久久丰满| 五月天亚洲网| A V少妇特黄三级| 亚洲欧洲自拍图片专区满春格| 欧美97日韩精品| 久久99精品视频| 麻豆天美91| 亚洲无限观看| 97精品全部| 97WW精品| 久久AV无码网址| 精品一区二区三区丰满熟女-亚洲欧美一区| 亚洲男人天堂网久久| www.av在线视频| 人妻丝袜一区二区三区在线| 人妻 制服 日韩 中文 在线| 99色热| 免费一级黄色录像影片| 午夜传煤十二区精品| 久久99手机免费视频| 综合自拍| 国产精品成人无码a v毛片| 欧美在线亚洲| 91久久久久久久| 在线女人91| 国产AV高清AV无码| 综合久久久久久久综合网| 色综91| 蜜桃精品一区二区三区久在线| 日本久久久久久久久| 国产精品免费美女视频| 在线中文字幕| 97欧美视频| 一区二区播放| 中文字幕诱惑制服人妻丝袜美丝袜美| 久久久久久性爱片| 伊人AAA| 免费a在线播放v| 久久国产免费激情视频| 91精品国产91久久福利| 麻豆成人AV| 激情内射| 天天在线91| 精品国产国产AV| 自拍丝袜美腿人妻| 翘臀vidoes| 99热免费| 婷婷四五区| 国产亚洲在线观看| 97色色婷婷| 人人摸人人干人人拍97| 国产精品69人妻无码久久久| 国产乱色国产精品免费视| 免费操逼91| 亚洲色图亚洲| 在线日韩精品一区二区三区| 69精品| 亚洲色图图片| 超碰午夜| 色综合国产在线观看| 狠狠操狠狠操操| 少妇被c 黄 免费观看| 亚洲九九九九| 亚洲欧美国产va在线播放频| 欧洲性爱无码区| 日本乱人伦片中文三区| 黄视频免费| 一起草欧美| 淫荡熟女乱伦网| 一区二区三区探花在线观看| 亚洲导航深夜福利| 欧美精品1区2区3区| 极品色社| 求求你操操我| 欧美色日| 大逼色网站| 91日韩| 人人操,人人插| 国产精品视频麻豆入口| 久久久久久AV无码免费网站| 性吧在线视频| 人妻美腿丝袜制服诱惑综合天堂-| 伊人久久大香蕉线AV五月天| 亚av顶级裸体一区二区三区四区五区 | 国产精品天美传媒| 伊人国产视频| 精品一区二区2| 国产久久久| 久久久久久久久久久免费精品| 国产精品69人妻无码久久久| 丁香五月电影| 日本 免费 一区二区三区 久久香蕉| 91网站视频在线观看| 天天综合网亚洲综合网| av三级电影在线播放| 2020中文在线一区二区三区| 99热欧美| 美女AV一区二区| 欧美,日韩,中文,另类| 中文字幕97| 家庭乱伦性爱av| 丁香五月婷婷基地| 91少妇香蕉久久精品| 国产美女自拍视频| 日本东京热加勒比久久| 天天舔天天 | 激情文学小说一区二区| 人妻一区二区三区四区视频| 久久久麻豆精品| 一区二区三区四区五区高清无码永久视频 | 欧美综合自拍| 日韩激情中文字幕有码| juliaann精品熟女一区| 精品在线78| 操迟操逼在巾线Fre看| 大香蕉亚洲中文| 941超碰| 自拍偷拍草一草| 大奶啊啊好爽| 欧美爱国产综合、| 国产特级毛片AAAAAA高潮流水 | 99色视频| 欧洲精品区| 自拍偷拍 日韩欧美| 成人在线日韩| 国产人人干| 天天艹天天日| 亚洲91网。| 麻豆久久一区二区三区| 久久婷婷亚洲| 超碰久草| 国产精品久久伊人| 天天射夜夜| 51久久夜色精品国产麻豆| 超碰日本97美女人妻人人玩人人爱| 加勒比性爱成人在线| 欧美性爱免费短视频| 亚洲伊人久久精品狠狠在线| 热99re69精品8在线播放| 亚卅熟女乱色| 亚洲熟女一区二区| 人妻熟女av国产网站| 天欧美在线| 久久久久久久亚洲Av无码| 成人熟女区| 天天操夜夜操狠很操| 自拍丝袜美腿人妻| 国产AAAAAABBBBB| 国产传媒美日韩av| 色综合V| 1204av韩国| 嗯啊抽插大香蕉网页| 国产精品久久久久久久久久久久久久久久 | 久久久性| 啊啊啊97视频| 久久人人爽爽人人爽人人片αV| 天天综合欧美综合| 国产精品一区二区校花| 欧洲亚洲人人爽爽视频| 色婷婷五月综合激情中文字幕| 九九九九一区| 夜夜操二区| 中文字幕在线免费观看2| 亚洲影院小综合| 亚洲性爱电影| 亚洲极品| 91丨九色丨43老版熟女| 夫妻天天操岛国视频| 亚洲情色1区| 成人av影院在线观看| 91少妇通奸网站| 婷婷五月天色色| 偷拍精品一区二区三区| juliaann丝袜大战黑鬼| 8050午夜少妇无码| 亚洲图片欧美色| 91性生活久久久| 91三级理论片播放器| 农村少妇久久久久久久| 高清不卡国产| 日韩乱伦影音先锋| 老司机香蕉久久久久| 暖暖精品二区三区观看| av无码精品久久久久| 国语精品av| 国产亚卅97| 一区二区三区欧美激情| av网站在线看| 欧美亚洲高清晰| 精品国产自在在线99| 欧美一级特黄淫片在线观看| 亚洲天堂男| 成人精品一区二区三区| 六月丁香五月婷婷| 亚洲 欧美 偷拍 唯美| 综合亚州欧美| 国产不卡中文字幕免费avi| 免费观看啪视频| 91香蕉视频在线观看免费| aV中文麻| 青青欧洲黑| 91精品电影18| 国模精品娜娜一二三区| 岛国黄片网站| 啊v在线观看视频| 国产视频小说| 在线 亚洲 网爆 自拍| 玖玖婷婷五月天| 国产黄片在线免费观看| 性夜影院爽黄A爽免费动漫| 精品久久久一本一道| 国产丰满少妇久久久精品影院| 丁香五月天激情综合| 一起草日韩| 美国日韩黄片| 97超碰超| 亚洲第一视频 欧美风情 日韩| 97看操| 色狠狠综合噜一二三区| 五月天综合| 大地资源在线观看中文第二页| 亚欧免费| 青青青国产手线观看视频2| 熟女精品日韩一区二区三区| 视频在线97| 亚洲诱惑天堂| 欧美一区二区三区成人性生活| 亚洲自拍另类丝袜综合| 97操97色| 五月天春色激情网| 玖玖综合.com| 久久精品国产精品亚洲艾通辽熟妇| 国产精品无码AV网站| 日韩丰满熟妇| 综合久久六月久久婷婷| 国产精品嫩草久久久久| 欧美伊人久久综合网| 激情黄色片在线观看| 成人羞羞视频国产| 欧美人体性爱互联网第一页婷婷日本| 97天天| 男人久久天堂| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 蜜乳av一区二区三区| 蜜桃久久久久久久久久久久| 国产地址二三| 美女丝袜激情小说| 人妻少妇久久| 精品人妻15区| 欧美色图综合网| 欧美一二三| 五月丁香黄色网| 亚洲AV无码乱码| 午夜操逼不卡| 婷婷中文网| 狠狠色综合网| 亚洲色堂免费视频| 97超碰天天爱天天爱| 欧美白嫩在线放| 天天干人妻| 久久久久久中文| 啊啊啊骚| 精品午夜福利导航| 午夜福利激情在线视频| 色乱二区| 日本在线一二 | 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 熟女这里只有精品6| 色伊人91| 亚洲 日本 一 二 三| 欧美超碰96| 97天天在线| 亚洲精品人体| 眼镜人妻101.com| www欧美性爱| 女人天堂AV五区在线| 精品无码久久久久| 国内精品99999| 在线人成亚洲视频免费观看| 色一色综合网| JULIA人妻风俗店中出电影| 是还免费视频1727我| 青娱乐91| 看一级特黄a大一片| 丁香五月AV| 免费网色网站| 国产精品久久久亚洲第一牛牛_在线观看| 俞拍久久国应视频| 亚洲色系另类精品国产| 亚洲五月丁香花狠狠干一区二区三区| 欧美亚洲影视| 97欧美资源| 欧 美 自 拍 偷 拍| 激情综合网激情五月天| 日本99一区二区| 久9精品| 综合久久六月久久婷婷| 精品夜夜澡人妻无码| 神马九九九| 亚洲无码超碰免费| h在线看免费版在线看| 天操老女人| 蜜桃av色偷偷av老熟女| 日韩乱插| 99黄页网站| 国产精品人妻无码久久久互動交流 | 另类图片五月| 四虎884| 超碰在线观看av不卡| 人妻天天爽夜夜爽爽| 色亚洲欧美| 日韩人妻免费精品| 国产熟妇一区二区| 久久产精品一区二区三区电影| 色色色色综合网| 东京热熟女亚洲视频网站| 色色毛片| 伊色综合天堂色97| 精精品人妻一区二区三区| 国产 亚洲 丝袜 制服| 成人天天看站长推荐| 91九九| 91久久久久免| 国内精品99999| 亚欧高清在线| 蜜臀一二三区| 国产做?爰片久久毛片?片美国| a片亚洲一本通视频| 夜夜操美女| 久久国产精品,久久国产| 欧美激情专区| oumeisetu综合| 国产精品久久久久婷婷二区次| 无码少妇精品一区二区60岁老人| 超碰97在线中文| 可以在线观看的黄色网址| av麻豆啪啪| 国产一区二区三区视频在线看| 操人妻逼91| 国产精品免费1区2区视频| 福利风月五月天影院| 家庭乱伦麻豆| 91殴美大片| 天天激情干| 久污| 女人高潮大叫一级毛片| 中国熟妇| 亚洲天堂性爱| 18禁在线视频| 制服中出中文人人精品| 岛国在线一区二区三区| 亚洲熟妇综合久久久久久| 欧美日韩性爱操大逼| 天天操福利视频综合网站| 五月激情在线| 国产女同在线观看视频| 裸模AV女优| 乱伦av麻豆| 这里只有97精品| 久久黄黄| av一区二区三区四区| 男女性扦B| 欧美色色色| a片自拍直播视频| 级品肉射| 九色婷婷| 国产精品成久久久久午夜午夜| 久久国模av| 国产小视频91| 超碰97亚洲| 日日日骚女人精品| 色五月综合网| 日韩免费簧片| 久久久少妇诱惑精品视频| 激情五月综合网| 91精品国产91久久福利| 天天综合网合集91| 超碰亚洲欧美日韩无| 少妇人妻好深太紧了vr91| 亚洲第一视频 欧美风情 日韩| 成年女人一区| 色成人Www精品永久观看| 91九色丨风韵犹存| 午夜毛片高清免费不卡| 九月色婷婷| 精品国产91av一区二区三区| 久久爱97| 亚熟hd视频在线| 久久五月份| 国产精品久久久无码AV网站| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 日韩欧美经典在线观看| 蜜乳中文字幕a在线| 骚日日av| 操一区| 蜜桃视频精品一区二区| 日逼国产| 国产在线能看的你懂的| 亚洲猛交| 国产第11页| 第二页中文字幕| 操久久久久久| 屁屁影院一区二区三区国产| 欧美日韩国产一区二区小黄片大全| 51一区二区三区| 超碰97最新人妻| 日韩情色视频| 五月激情综合网| 国产激情av女片自拍| 欧美偷拍区| 国产h小视频在线观看免费| 天天综合网亚洲综合网| 啊啊啊好大好湿| 欧美精品丝袜久久久中文字幕| 日本三级中国三级99人妇网站| 一,爱啪啪,在线免费视频| 欧美一级AAAAAAA| 9Ⅰ老熟女| 十八禁黄色| 91男女| 日日干夜夜骑| 久久婷婷欧美| 亚洲美女色图| 麻豆AV96熟妇人妻| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 91国产伊人大香蕉| 亚洲欧美日韩中文久久自慰| 午夜精品久久久久| 免费9 1久久| 久久超碰、| 色狠人在线99| 亚洲综合性感在线| 欧美在线伊人色| 欧美性爱一内片一区二区三区| 欧美九九爱| 日本不卡卡一区| 男人下部插入女人下部| 中文字幕 一区二区 亚洲无码| 天天综合在线4| 日韩另类色图| 97天天爽| 九九九久千久久激情蜜桃在线看 | 久艹伊人精品综合在线| 夜夜操夜夜爽夜夜高潮| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 99热导航| 大香蕉之青青草原| 999九九九九国产动| 玖色av| 热热色91| 精品无码一区二区三区色欲| 亚洲一区二区三区在线激情| 免费观看网黄| 国产AV激情无码久久无码| 国产激情av女片自拍| 91久热| 综合色图区| 熟女天天干| 亚洲人人夜夜澡人人爽| 蜜臀网址在线| 国产老太乱伦一区| 国产毛片久久久久久久| 日韩激情啪啪| 日本有码久久| 久久骚少妇| 欧美日韩国产色五月综合在线| 国产农村妇女毛片精品久久| 97超碰精品| 国产极品精品美女视频| www欧美性爱| 久操B网| 啊啊啊要高潮了| 久热伊人| 中文人妻av高清一区| aaa一级黄片| 澳门成人网站久国产日韩| 亚洲资源网| 啊啊啊啊啊啊啊啊在线观看| 精品国产91内射久久| 色综合尤物| 宅男午夜在线视频| 日本 情色 1区2区3区| 亚洲欧洲激情卡通另类文学四射小说网站| 国产午夜福利专区综合| 96久久精品一二三区色欲| 嗯啊不要啊在线 | 欧美淫乱视频| 中国操逼无码| 日本精品不卡一二三区| 伊人大香蕉在线| 91美女视频电影| 91人妻人人澡人人爽人人精品| 性在久久久久久| 免费视频在线观看啊啊啊啊啊| 91 综合 色| 色波多| 九九碰九九爱97超碰| 一本大道综合伊人精品热热| 97伊人网| 国产精品无码AV网站| 老熟女区| 四虎在线观看视频| 最新日产中文在线麻豆| 久久熟妇五十路一区| 婷婷国产精品一区二区| 看黄片视频免费| 色哟哟-国产专区| 亚洲男人天堂手机版| 日本丝袜人妻内射| 97超碰天天爱天天爱| 蜜臀99久久精品久久久久| 大伊香蕉在线视频免费| 69视频福利导航| 麻豆久久精品亚洲精品88| 免费一级欧美片片线观看| 干B| 欧美一二三级精品在线| 爽爽歪在线视频| 97资源站国产精品| 影音先锋中文字幕日本好一区二区| 夜夜久久| 一级性爱视频免费观看 | 天天综合网亚洲综合网| 美女尤物人人操| 青青草啪啪网| 91久久免费视频互動交流 | 韩三级a视频在线观看| 色妺妺在线视频| 啊v在线观看视频| 9999久久久久| 久久9久久| 国产精品99久久久www| 九99久久| 久久欧美性爱视频| 97欧美久久久久久久| 欧美性爱1080p| 加勒比综合a∨| 强奸乱伦大香蕉网| 天天大干大香蕉| 自拍偷拍 日韩无码| 国产后入清纯| 亚洲二区精品在线观看| 欧美骚少妇| 久久久久国产一区二| 91美女高潮| 亚洲精品久久久久久久蜜桃臀| 涩亚洲欧洲| 日本99视频| 综合 亚洲 欧美| 少妇国产不卡| 久久免费99精品久久久久久| 一区| 乱伦AVxx| 青女偷拍网| 天天综合网一91网| 欧美黄色手机在线观看| 国产极品久久久| 国产极品美女高潮无套在线观看| 久久人人爽av亚洲精品天堂桃色 | 欧美色97| 91亚州日韩高清| 黑人精品XXX一区一二区| 欧美亚洲美少妇一区二区| 91快色色色色色| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 狠狠色丁香| 性色AV蜜色av色欲av| 激情视频一二三| 亚洲黄色影视| 一中国女人毛片水真多| 六月婷婷一区二区三区| 综合一区中亚洲国产成人综合精品| 欧美成人精品一区| 九一综合精品视品av| 色呦呦呦在线观看视频| 无套后入双马尾| 艾草av| 伊人女女资源在线观看| 人妻久久一区二区三区 | 亚洲偷拍欧美激情| 99久久网站| 狠狠爱大香蕉| 成人免费在线网站| 色吧五月| 人人模人人看| 超碰无码五月97| 熟女突然公开看18禁影片 | 乱伦日本中文自拍| 欧美青青视频| 久久五月天婷婷| 无码人妻精品一区二区三区99不卡| 天天操美美| 超碰三级秋霞| Blackedraw视频一区二区| 欧美日韩亚洲天堂| 欧美亚洲高清不卡| 日韩pv中文| 国产美女高潮叫床视频| 美女被啪到深处抽搐视频| 大干人妻| 日韩钢筋无码高清啾啾啾| 欧洲色色| 日韩探花精品在线视频| 日本久久女同性恋视频| 曰韩香蕉97| 91丝袜美女| 狠狠五月天| 欧美不卡二区| 欧美综合综合| 欧美激情精品久久久久久| 91色综合激情| 久久小视频| 日本欧美亚洲高清在线看| 伊人国产成人av网站| 超碰综合97在线| 亚洲欧美setu| 欧洲综合视频| 五月天婷婷影院| 婷婷深爱五月| 久久成人午夜精品影院| 黄色免费网| 亚洲欧美色图片| 人人操人人操人妻人| 亚洲中文字幕一区| 97AV在线免费观看| 亚洲人妻熟妇三十三区| 欧州色图区| 91美女丝袜诱惑视频| 久久99精品视频| 综合自拍| 久久久久国产一区二| 色综合av男人天堂| 欧亚成人| 综合五月婷婷亚洲一区| 中文字幕一区二区三区字幕| 草草草视频在线免费看| 好爽免费视频| 色逼综合| 97免费视频在线| 91性情| 97久操| 人妻精品一区二区| 久草免费在线视频| 久久东京热久久| 99热这里只有精品18| 搡老女人老熟女91老熟女综合网| 上床啊啊啊| 伊人麻豆传媒| 91久久| 你懂的在线观看区国产| 国产精品麻豆成人av| 92性色国产午夜福利在线661| 亚洲欧洲av影音| 天天射天天| 久久精品日韩| 国产成人一级av88| 影音先锋乱| 啪啪啪综合网| 人妻天天操天天爽视频免费| 亚洲s在线观看|