久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring Boot 功能整合的實(shí)現(xiàn)

瀏覽:2日期:2023-07-13 16:10:57
目錄前言數(shù)據(jù)庫(kù)持久化支持Swagger 文檔支持參數(shù)校驗(yàn) JSR303跨域解決整合MongoDB實(shí)現(xiàn)文件上傳下載刪除前言

如果根據(jù)之前做的 Nest.js 后端項(xiàng)目功能為標(biāo)準(zhǔn)的話(huà),那么 Spring Boot 項(xiàng)目需要幾種功能進(jìn)行整合,好在生態(tài)豐富,集成也不算困難。所以打算根據(jù)之前的項(xiàng)目使用 Spring Boot 重寫(xiě)個(gè)新的項(xiàng)目:

Restful API CRUD 功能實(shí)現(xiàn) 數(shù)據(jù)庫(kù)對(duì)象關(guān)系映射功能持久化支持 OpenAPI 文檔支持 參數(shù)校驗(yàn)判斷業(yè)務(wù) redis 緩存 ... 數(shù)據(jù)庫(kù)持久化支持

目前數(shù)據(jù)庫(kù)持久化主要是 Spring Boot Jpa 和 Spring Boot Mybatis 。如果看過(guò) JPA 的業(yè)務(wù)過(guò)程會(huì)發(fā)現(xiàn)和 Nodejs 中的 TypeORM 及其相似。Mybatis 主要可以靈活調(diào)試動(dòng)態(tài) Sql 。不管怎么說(shuō)根據(jù)自己項(xiàng)目業(yè)務(wù)需求選定其中功能吧。

安裝 MyBatis 教程可以官方文檔查閱:mybatis-spring-boot-autoconfigure

Swagger 文檔支持

集成 Swagger UI 文檔支持也非常簡(jiǎn)單,生態(tài)中的 springfox 做的不錯(cuò),添加依賴(lài):

<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version></dependency>

這里需要指定版本,不指定拉取依賴(lài)會(huì)報(bào)錯(cuò)。

然后在啟動(dòng)方法添加注解:

@EnableOpenApipublic class YasuoApplication {public static void main(String[] args) { // ...}}

然后在 Controller 類(lèi)上添加標(biāo)識(shí):

@Api(value = 'global', tags = '全局接口')@RestController@RequestMapping('/')public class AppController {}

在然后在方法里添加詳細(xì)信息:

@Api(value = 'global', tags = '全局接口')@RestController@RequestMapping('/')public class AppController { UserService userService; @ApiOperation(value = '用戶(hù)登錄', notes = '系統(tǒng)用戶(hù)登錄') @PostMapping('login') public JSONObject login(@RequestParam('username') String username, @RequestParam('password') String password) {System.out.println(username);System.out.println(password);JSONObject info = new JSONObject();return info; }}

啟動(dòng)項(xiàng)目訪(fǎng)問(wèn):http://localhost:8080/swagger-ui 即可訪(fǎng)問(wèn)。值得注意是如果你在 application 添加 server.servlet.contextPath 選項(xiàng)的時(shí)候記得添加對(duì)應(yīng)的字段。

參數(shù)校驗(yàn) JSR303

從 springboot-2.3 開(kāi)始,校驗(yàn)包被獨(dú)立成了一個(gè) starter 組件:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>

比如在 DTO 類(lèi)里:

package com.iiong.yasuo.dto;import lombok.Data;import javax.validation.constraints.NotEmpty;/** * Author: Jaxson * Description: 請(qǐng)求用戶(hù)登錄參數(shù) * Date: 2021-05-26 */@Datapublic class UserLoginRequestDTO { @NotEmpty(message = '登錄名稱(chēng)不得為空!') private String username; @NotEmpty(message = '登錄密碼不得為空!') private String password;}

內(nèi)置的校驗(yàn)注解可以查看官方文檔,然后進(jìn)行參數(shù)校驗(yàn):

@ApiOperation(value = '用戶(hù)登錄', notes = '系統(tǒng)用戶(hù)登錄')@PostMapping('login')public RestfulModel<UserLoginResponseDTO> login(@RequestBody @Validated UserLoginRequestDTO userLoginRequestDTO) { System.out.println(userLoginRequestDTO); UserLoginResponseDTO userLoginResponseDTO = new UserLoginResponseDTO(); userLoginResponseDTO.setId(1013401346173L); userLoginResponseDTO.setLoginName('112233'); userLoginResponseDTO.setName('系統(tǒng)管理員'); userLoginResponseDTO.setToken('test'); return new RestfulModel<>(0, '登錄成功!', userLoginResponseDTO);}

不過(guò)默認(rèn)返回的異常信息并不是很友好,需要再次簡(jiǎn)化,所以需要做個(gè)全局異常處理。如果需要可以使用 @RestControllerAdvice 注解來(lái)表示全局處理類(lèi):

/** * Author: Jaxson * Description: 全局異常處理類(lèi) * Date: 2021-05-26 */@ControllerAdvicepublic class ExceptionHandlerConfig { /** * 統(tǒng)一處理參數(shù)校驗(yàn)異常 * @param bindException 捕捉到的異常 * @return 返回?cái)?shù)據(jù) */ @ExceptionHandler(value = BindException.class) @ResponseBody public RestfulModel<Object> validExceptionHandler(BindException bindException) {String exceptionMsg = bindException.getBindingResult().getAllErrors().get(0).getDefaultMessage();return new RestfulModel<>(1000, exceptionMsg, null); }}

當(dāng)然這里面還可以處理一些系統(tǒng)級(jí)別的異常,自己拋出即可。

跨域解決

解決跨域問(wèn)題也很簡(jiǎn)單,只需要實(shí)現(xiàn)接口 WebMvcConfigurer 重寫(xiě)方法即可:

/** * Author: Jaxson * Description: 運(yùn)行跨域 * Date: 2021-05-26 */@Configurationpublic class WebMvcConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry corsRegistry) {corsRegistry.addMapping('/**').allowedOriginPatterns('*').allowedHeaders(CorsConfiguration.ALL).allowedMethods(CorsConfiguration.ALL).allowCredentials(true).maxAge(3600); // 1小時(shí)內(nèi)不需要再預(yù)檢(發(fā)OPTIONS請(qǐng)求) }}整合MongoDB實(shí)現(xiàn)文件上傳下載刪除

引入pom依賴(lài)

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>

配置yml

spring: data: mongodb: host: *.*.*.* username: *** password: *** database: *** port: 27017 # 設(shè)置文件上傳的大小限制 servlet: multipart: max-file-size: 10MB max-request-size: 50MB

上傳下載刪除

/** * @author Mr.Horse * @version 1.0 * @description: MongoDB的文件上傳、下載、刪除等基本操作(集合HuTool工具庫(kù)) * @date 2021/4/29 9:53 */@Validated@Controller@RequestMapping('/mongo')public class MongoUploadController { private static Logger logger = LoggerFactory.getLogger(MongoUploadController.class); @Autowired private GridFsTemplate gridFsTemplate; @Autowired private MongoTemplate mongoTemplate; private static final List<String> CONTENT_TYPES = Arrays.asList('image/gif', 'image/jpeg', 'image/jpg', 'image/png'); /** * MongoDB文件上傳(圖片上傳) * * @param file * @return */ @PostMapping('/upload') public ResponseEntity<String> fileUpload(@RequestParam('file') MultipartFile file) {try { // 校驗(yàn)文件信息(文件類(lèi)型,文件內(nèi)容) String originalFilename = file.getOriginalFilename(); if (StrUtil.isBlank(originalFilename)) {return ResponseEntity.badRequest().body('參數(shù)錯(cuò)誤'); } String contentType = file.getContentType(); if (!CONTENT_TYPES.contains(contentType)) {return ResponseEntity.badRequest().body('文件類(lèi)型錯(cuò)誤'); } InputStream inputStream = file.getInputStream(); BufferedImage bufferedImage = ImageIO.read(inputStream); if (ObjectUtil.isEmpty(bufferedImage)) {return ResponseEntity.badRequest().body('文件內(nèi)容錯(cuò)誤'); } // 文件重命名 String suffix = FileNameUtil.getSuffix(originalFilename); String fileName = IdUtil.simpleUUID().concat('.').concat(suffix); // 文件上傳,返回ObjectId ObjectId objectId = gridFsTemplate.store(inputStream, fileName, contentType); return StrUtil.isBlank(String.valueOf(objectId)) ? ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body('文件上傳失敗') : ResponseEntity.ok(String.valueOf(objectId));} catch (IOException e) { return ResponseEntity.badRequest().body('文件上傳異常');} } /** * 根據(jù)ObjectId讀取文件并寫(xiě)入響應(yīng)流,頁(yè)面進(jìn)行進(jìn)行相關(guān)操作,可以進(jìn)行文件的下載和展示 * * @param objectId */ @GetMapping('/read') public void queryFileByObjectId(@RequestParam('objectId') @NotBlank(message = 'ObjectId不能為空') String objectId, HttpServletResponse response) {// 根據(jù)objectId查詢(xún)文件GridFSFile file = gridFsTemplate.findOne(new Query(Criteria.where('_id').is(objectId)));// 創(chuàng)建一個(gè)文件桶GridFSBucket gridFsBucket = GridFSBuckets.create(mongoTemplate.getDb());InputStream inputStream = null;OutputStream outputStream = null;try { if (ObjectUtil.isNotNull(file)) {// 打開(kāi)下載流對(duì)象GridFSDownloadStream fileStream = gridFsBucket.openDownloadStream(file.getObjectId());// 創(chuàng)建girdFsResource,傳入下載流對(duì)象,獲取流對(duì)象GridFsResource gridFsResource = new GridFsResource(file, fileStream);// 寫(xiě)入輸出流inputStream = gridFsResource.getInputStream();outputStream = response.getOutputStream();byte[] bytes = new byte[1024];if (inputStream.read(bytes) != -1) { outputStream.write(bytes);} }} catch (IOException e) { logger.error('文件讀取異常: {}', e.getMessage());} finally { IoUtil.close(outputStream); IoUtil.close(inputStream);} } /** * 根據(jù)ObjectId刪除文件 * * @param objectId * @return */ @DeleteMapping('/remove') public ResponseEntity<String> removeFileByObjectId(@RequestParam('objectId') @NotBlank(message = 'ObjectId不能為空') String objectId) {gridFsTemplate.delete(new Query(Criteria.where('_id').is(objectId)));return ResponseEntity.ok('刪除成功'); }}

如果需要實(shí)現(xiàn)在瀏覽器頁(yè)面下載此資源的功能,可結(jié)合js進(jìn)行操作(文件類(lèi)型根據(jù)具體業(yè)務(wù)需求而定)。主要實(shí)現(xiàn)代碼如下所示:

downloadNotes(noteId) { axios({url: this.BASE_API + ’/admin/mongo/file/query/’ + noteId,method: ’get’,responseType: ’arraybuffer’,params: { type: ’download’ } }).then(res => {// type類(lèi)型可以設(shè)置為文本類(lèi)型,這里是pdf類(lèi)型const pdfUrl = window.URL.createObjectURL(new Blob([res.data], { type: `application/pdf` }))const fname = noteId // 下載文件的名字const link = document.createElement(’a’)link.href = pdfUrllink.setAttribute(’download’, fname)document.body.appendChild(link)link.click()URL.revokeObjectURL(pdfUrl) // 釋放URL 對(duì)象 }) }

以上就是Spring Boot 功能整合的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Spring Boot 功能整合的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 亚州精品成人 | 亚洲aaaaaa特级 | 日韩中文视频 | 欧美视频精品在线 | 成人精品一区二区三区 | 国产中文视频 | 夜夜爽99久久国产综合精品女不卡 | 久久精品视频免费看 | 久久国产精品免费一区二区三区 | 狠狠亚洲 | 成人午夜精品 | 国产亚洲精品久久久闺蜜 | 国产一区二区视频在线观看 | 国外成人在线视频 | 欧美日韩三区 | 日韩一区二区观看 | 久久成人高清 | 韩国精品在线 | 青青操av在线 | 欧美日韩亚洲高清 | 色橹橹欧美在线观看视频高清 | 国产精品永久在线观看 | 91影院| 亚洲一区二区免费看 | 亚洲天天| 亚洲精品一区二区三区蜜桃久 | 欧美综合婷婷 | 日韩视频―中文字幕 | 欧美一区二区三区电影 | 另类天堂 | av综合在线观看 | 国产欧美一区二区三区国产幕精品 | 中国一级毛片 | 久久91精品久久久久久9鸭 | av不卡在线播放 | 欧美午夜一区二区三区免费大片 | 色毛片| 日本黄色影片在线观看 | 性处破╳╳╳高清欧美 | 欧美日韩精品在线一区 | 日韩在线免费 | 日韩午夜在线视频 | 欧美在线网站 | 成人午夜啪啪好大 | 亚洲人成人一区二区在线观看 | 91伦理片| 国产精品亚洲天堂 | 天天操天天插 | 亚洲一区二区三区中文字幕 | 精品亚洲国产成av人片传媒 | 国产免费一区二区三区 | 免费看片一区二区三区 | 国产精品久久久爽爽爽麻豆色哟哟 | 国产免费天天看高清影视在线 | 一级黄色毛片 | 欧美精品三区 | 日本最新免费二区 | 四虎影院最新网站 | 在线免费毛片 | 国产一区二区三区在线免费观看 | 国产成人综合网 | 国产色婷婷精品综合在线播放 | 久草成人 | 日韩在线免费 | 欧美一区二区三区视频 | 日韩一区二区三区在线视频 | 天堂中文资源在线 | 亚洲精品一区二区三区樱花 | 日韩精品在线视频 | 毛片91 | 在线国产一区二区 | 日韩免费在线观看视频 | 亚洲高清视频在线 | 成人深夜福利视频 | 国产成人精品一区二区三区视频 | 日本午夜在线 | 亚洲视频777 | 四虎精品在线 | 日本五月婷婷 | aaa久久 | 成人欧美一区二区三区黑人孕妇 | 欧美福利二区 | 国产成人午夜 | 亚洲精品一区二区另类图片 | 国产亚洲精品精品国产亚洲综合 | 午夜精品视频在线观看 | 国产视频久久精品 | 中文字幕久久久 | 欧美日韩国产综合视频 | 羞羞视频网站 | 国产免费一区二区 | 综合国产 | 亚洲国产精品99久久久久久久久 | 久久国产一区二区 | 精品毛片 | 日韩在线视频免费看 | 欧美日韩中字 | 欧美一级二级视频 | 一区二区三区四区免费观看 | 91午夜激情 | 久久精品免费视频观看 | 久久亚洲精品中文字幕 | 欧美日韩二区三区 | 97成人精品视频在线观看 | 四虎影院免费看 | 在线观看91精品国产入口 | 亚洲一区二区在线免费观看 | 伊人久久精品久久亚洲一区 | 少妇精品久久久久久久久久 | 日韩福利视频 | 日本高清视频在线播放 | 日韩性视频| 亚洲欧美综合精品久久成人 | 一区二区日韩 | 欧美成人精品一区二区三区 | 一区二区三区精品视频 | 奇米亚洲午夜久久精品 | 免费一区二区三区 | 午夜精品在线 | 亚洲精品久久久一区二区三区 | 国产综合精品视频 | 日韩在线观看一区二区 | 青青草一区二区三区 | 午夜免费福利视频 | 国产精品美女 | 97av视频在线观看 | 国产一区二区三区免费观看 | 日韩成人在线视频 | www.日韩av.com | 日韩视频三区 | 成人国产精品久久久 | 日本免费三片免费观看 | 91精品国产综合久久久久久 | 操操操操操操操操操操操操操操 | 精品免费 | 午夜激情视频在线观看 | 欧美色阁 | 亚洲精品一区二区网址 | 久久青 | 久久久久久国产精品 | 国产主播一区 | 中文字幕亚洲欧美日韩在线不卡 | 色婷婷av久久久久久久 | 欧美日韩h | 成人在线看片 | 亚洲国产精品一区 | 国产精品视频播放 | 国产精品视频免费观看 | 日韩在线播放欧美字幕 | 91玖玖 | www.亚洲| 欧美不卡视频一区发布 | 国产xxxx精品| 久久亚洲一区 | 亚洲国产成人精品女人 | 成人在线网址 | 一区二区三区影视 | 国产成人免费 | 国产精品第一国产精品 | 美女扒开尿口来摸 | 日韩精品视频在线 | 国产成人精品一区二区 | a久久久久久 | 亚洲精品一区国语对白 | 国产精品视频免费观看 | 国产精品久久99 | 在线手机电影 | 午夜私人影院在线观看 | 久久国产精品一区二区三区 | 天天干天天操 | 亚洲综人网 | 日韩中文一区二区三区 | 国产羞羞视频免费在线观看 | 日韩精品在线一区 | 国产一级片一区二区三区 | www.99re| 91视频国产一区 | 午夜影院免费 | 国产成人欧美一区二区三区的 | 精品国产乱码一区二区三区 | 成人免费视频网站 | 国产在线精品一区 | 中文字幕1区 | 日韩国产在线观看 | 91观看| 在线激情av | 一级久久久久 | 日韩特级 | 丁香在线| 黄色av网站在线免费观看 | 亚洲免费在线视频 | 日日爱视频 | 国产精品久久国产精品99 gif | 操操操夜夜操 | 亚洲一区二区三区视频 | 国产一区二区在线免费观看 | 久久精品亚洲 | 91看片在线观看 | av男人的天堂在线 | 中文在线一区二区 | 亚洲社区在线观看 | 亚洲一区在线日韩在线深爱 | av成人在线观看 | 久久九九国产精品 | 91麻豆精品国产91久久久久久久久 | 狠狠色综合欧美激情 | 91精品国产日韩91久久久久久 | 一区二区久久 | 精品96久久久久久中文字幕无 | 综合在线视频 | 日本福利视频网 | 久久天堂| 中文字幕一二区 | 国产在线小视频 | 午夜欧美| 久久青 | 亚洲一区久久 | 美女久久久久 | 亚洲美女视频一区二区三区 | 国产精品99久久久久久宅男 | 天堂中文资源在线 | 精品一区二区三 | 婷婷毛片 | 夜夜爽网址| 日韩中文字幕电影在线观看 | 免费久久99精品国产婷婷六月 | 一区在线播放 | 久久久久一区二区 | 日韩一区二区三区在线观看 | 久久国产精品首页 | 四季久久免费一区二区三区四区 | 日日操狠狠操 | 日韩在线观看网站 | 国产一区视频网站 | 特黄一级 | 性一级录像片片视频免费看 | 久久毛片 | 黄色精品网站 | 欧美男人的天堂 | 天天艹逼| 九色网址| 国产精品2区 | 伊人久久一区二区三区 | 亚洲欧美日韩国产综合 | 四虎小视频 | 三级在线免费 | 日本黄色大片免费 | 国产乱肥老妇国产一区二 | 女人夜夜春高潮爽a∨片传媒 | 欧美天堂在线观看 | 欧美日韩精品一区二区三区在线观看 | 亚洲黄网在线观看 | 色花av | 99精品免费视频 | 欧美精品黄 | 亚洲精品乱码久久久久久蜜桃不卡 | 蜜桃视频精品 | 欧美日本在线观看 | 青青久久网| 一级毛片视频 | 精品一区二区三区免费视频 | 亚洲看片网站 | 国产在线欧美 | 免费h| 一级毛片免费看 | 欧美激情欧美激情在线五月 | 午夜精品一区二区三区在线 | www.亚洲| 亚洲国产精品一区二区第一页 | 国产日韩一区二区 | 久久久婷 | 中文字幕在线三区 | 日日干夜夜操 | 日韩一区不卡 | 久草久草 | 欧美精品久 | 高清三区 | 一区二区三区免费av | 久久av综合| 一区不卡| 午夜精品久久久久久久男人的天堂 | 国产精品亚洲视频 | 三区影院 | 欧美在线视频一区 | 亚洲成人av | 亚洲综合色视频在线观看 | h片免费| 久久久精品一区 | 欧美激情自拍偷拍 | 亚洲婷婷综合网 | av超碰在线| 剑来高清在线观看 | 久久免费国产精品 | 国产精品三级久久久久久电影 | 国产福利在线观看视频 | 免费在线黄色电影 | 欧美自拍视频在线 | 久久99精品久久久久久琪琪 | 一区二区三区精品视频 | 日本成人中文字幕 | 91在线视频观看 | 精品国产欧美一区二区 | 欧美综合网 | 国产色网 | 国产视频2021| 视频一区在线 | 精品国产成人 | av三级在线免费观看 | 日本在线网 | 日韩一区二区三区在线观看 | www狠狠操 | 激情欧美一区二区三区中文字幕 | 午夜精品在线 | 激情综合色综合久久综合 | 91激情视频 | 91精品视频在线播放 | 欧美一级在线观看 | 天天夜夜操操 | 天天噜天天干 | 黄色片在线 | 天天干天天谢 | 久久精品一 | 欧美午夜精品久久久 | 天天夜碰日日摸日日澡 | 欧美成人h版在线观看 | 99热国| 国产日韩在线播放 | 成人在线免费视频观看 | 久久久久一区二区三区 | 一区二区三区四区在线视频 | 懂色av色香蕉一区二区蜜桃 | 成人深夜福利视频 | 国产探花在线精品一区二区 | 亚洲成av | 在线天堂新版最新版在线8 www.国产欧美 | 成人婷婷| 久久一级 | 黄色片在线免费观看 | 国产乱码精品一区二区三区忘忧草 | 亚洲综合色自拍一区 | 99在线视频播放 | 精品国产福利 | 在线 丝袜 欧美 日韩 制服 | 中文字幕亚洲一区二区三区 | 亚洲aaa| 毛片国产 | 亚洲人久久 | 在线影院av | 国产韩国精品一区二区三区 | 欧美高清hd | 一级大片一级一大片 | 懂色av色香蕉一区二区蜜桃 | 欧美日韩综合一区 | 精品视频久久 | 国产一级免费 | 国产成人影院在线观看 | 91精品久久久久久久久久入口 | 国产精品免费视频观看 | 国产精品日韩欧美一区二区 | 成人一区二区三区四区 | 美女福利视频网站 | 精品三区在线观看 | 精品日韩中文字幕 | 成人免费视频观看视频 | 99视频精品 | 亚洲成人三区 | 精品一区二区三区在线视频 | 亚洲毛片在线观看 | 成年人视频在线观看免费 | 理论片一区| 日韩精品一区二区三区在线观看 | 欧美日韩美女 | 毛片一区二区 | 亚洲一区二区三区四区五区中文 | 欧美wwwsss9999| 欧美精品国产精品 | 精品国产一区二区在线 | 黄色国产大片 | 毛片大全 | 国产一区在线看 | 韩国精品一区 | 黄色拍拍视频 | 日韩在线视频观看 | 成人三级免费 | 精品国产一区二区三区日日嗨 | 中文字幕精品一区久久久久 | 国产成人一区二区 | 中文字幕日韩在线 | 一级免费网站 | 精品国产一区二区三区四区 | 在线看一区 | 91一区二区在线 | 在线观看免费毛片视频 | 日韩中文字幕免费在线播放 | 欧美综合色 | 91免费在线播放 | 国产欧美在线观看 | 啵啵影院午夜男人免费视频 | 亚洲免费婷婷 | www日本高清 | 国产日韩精品一区二区 | 日日日日干干干干 | 婷婷综合激情 | 综合五月激情 | 日韩国产精品一区二区三区 | 亚洲电影一区二区 | 久久亚洲精品中文字幕 | 91在线电影 | 奇米二区 | 国产精品日韩一区二区 | 一级毛片免费看 | 不卡二区| 国产精品电影 | 欧美一区二区三区在线观看 | 亚洲精品自在在线观看 | 久久精品视 | 久久国产精品免费一区二区三区 | 日日骚av | 国产精品夜夜春夜夜爽久久电影 | 亚洲高清在线视频 | 韩国av片在线观看 | 久久伊99综合婷婷久久伊 | 久久久久网站 | 亚洲欧美国产毛片在线 | 亚洲性人人天天夜夜摸 | 国产精品一二 | 欧美一级在线观看 | 亚洲综合精品在线 | 亚洲精品一区二区三区99 | 免费成人在线网站 | 亚洲免费网址 | 亚洲伦理 | 性视频网站免费 | 欧美永久精品 | 亚洲精彩视频 | 精品色区| 国产在线中文字幕 | 日韩成人在线视频 | 蜜桃av一区二区三区 | 国产精品二区三区 | 狠狠亚洲 | 91新视频 | 亚洲不卡 | 台湾佬成人网 | 欧美一级欧美三级在线观看 | 欧美国产日韩在线观看 | 欧美激情在线精品一区二区三区 | 成人午夜免费网站 | 国产片av| 日日操av| 久久国产精品视频 | 国产 欧美 日韩 一区 | av网站观看 | 天堂精品 | 久久伊人一区 | 啪一啪 | 国产日韩欧美 | 久久久久久久久成人 | 成人综合社区 | www国产成人免费观看视频,深夜成人网 | 国产精品视频入口 | 91在线精品视频 | 久久视频国产 | 精品亚洲视频在线 | 日韩中文字幕在线免费观看 | 日本不卡免费新一二三区 | 亚洲欧美在线观看 | 国产精品久久精品 | 91精品欧美久久久久久动漫 | 国偷自产一区二区免费视频 | 这里只有精品在线 | 成人欧美 | 激情五月婷婷综合 | 九九天堂网 | 91在线观看视频 | 日韩精品视频在线 | 成人欧美一区二区三区在线观看 | 免费看性生交大片 | 精品久久久久久久久久久 | 国产一区二区久久 | 亚洲高清视频在线 | 这里只有精品在线视频观看 | 天天爽夜夜爽夜夜爽精品视频 | 亚洲欧洲一区二区 | 国产成人免费视频网站视频社区 | 天天艹夜夜艹 | 久久精品国产精品青草 | 国产在线一 | 国产精品成人久久久久 | 狠狠色综合久久丁香婷婷 | 久草最新 | 99国产精品99久久久久久 | 中文字幕三区 | 欧美另类专区 | 色性av| 国产精品久久久久久久久免费桃花 | 91 久久| 亚洲一区电影 | 日韩一区在线视频 | 成人午夜电影在线观看 | 日韩不卡一区 | 国产成人精品一区二 | 亚洲一区不卡在线 | 国产日产精品一区二区三区四区 | 亚洲视频 欧美视频 | 中文字幕一区二区三区不卡 | 精品久久一区二区 | 在线色网 | 99亚洲| 国产免费黄色 | 成人亚洲 | 99爱视频| 成人久久久| 国产成人一区二区三区 | 久久高清国产 | 日韩一区欧美一区 | 欧美精品综合 | 日日干日日操 | 国产女人和拘做受视频 | 99热首页 | 91在线视频福利 | 中文字幕在线观看的电影 | 国产成人免费视频网站视频社区 | 中文字幕在线观看2021 | 久久精品在线观看视频 | 欧美一区二区在线播放 | 国产一区二精品区在线 | 国产18av | 免费黄色特级片 | 精品综合久久 | a在线观看 | 99福利视频| 久久视频一区 | 亚洲第一视频 | 国产免费一区二区三区网站免费 | 91在线观看视频 | 在线一区观看 | 一二三区不卡视频 | 九七超碰在线 | 成人在线免费 | 老司机午夜免费精品视频 | 97精品一区二区三区 | 国产亚洲欧美一区二区 | 国产婷婷色一区二区三区 | 高清三区 | 91视频免费观看 | 日韩欧美高清dvd碟片 | 欧美一区二区三区在线视频观看 | www日本在线 | 国产精品免费在线 | 国产免费久久 | 欧美成人在线影院 | 日韩爱爱网 | 韩日视频在线观看 | 一区二区久久久 | 97精品国产97久久久久久粉红 | 亚洲欧美久久久 | 一a级毛片 | 日韩中文视频 | 亚洲中出| 日韩在线播放视频 | 日韩国产一区二区 | 一区二区三区国产好 | 国产精品a久久 | 99久久婷婷国产精品综合 | 国产精品久久久久久久久久久小说 | 久久亚洲欧美日韩精品专区 | 久草精品在线 | 欧美日韩视频在线第一区 | 精品亚洲永久免费精品 | 欧美福利一区二区三区 | 国产成人99久久亚洲综合精品 | 国产精品嫩草55av | 狠狠操天天干 | 欧美精品二区中文乱码字幕高清 | 国产成人精品综合 | 久一区二区三区 | 黄色一级大片视频 | 午夜精品久久久久久久星辰影院 | 日韩精品成人 | 亚洲www啪成人一区二区 | av一区二区在线观看 | 青青久久网 | 夜本色 | 国产精品乱码一区二区三区 | 一区二区三区视频播放 | 欧美国产视频一区 | 91精品国产乱码久久久久久 | 中国大陆高清aⅴ毛片 | 三级视频网站 | 国产成人精品免费 | 国产中文字幕在线观看 | 吴梦梦到粉丝家实战华中在线观看 | 一区二区三区国产精品 | 日韩精品一区二区三区免费观看视频 | 成人免费国产 | 91在线一区二区 | 成人免费网站视频 | 狠狠爱天天操 | 青青草国产成人av片免费 | 成人在线视频一区 | a∨在线观看 | 欧美久热| 伊人狠狠干| 久久精品欧美电影 | 国产美女高潮 | 亚洲精品国产剧情久久9191 | 欧美一区二区三区免费 | 国产精品欧美日韩 | 久久久国产一区二区三区 | 精品国产一区二区在线 | 懂色一区二区三区免费观看 | 一区二区三区影院 | 一区二区免费在线视频 | 国产一区二区三区 |