国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

一份 Spring Boot 項(xiàng)目搭建模板

共 3395字,需瀏覽 7分鐘

 ·

2020-11-18 01:45


前言

建立一個全新的項(xiàng)目,或者把舊的龐大的項(xiàng)目,進(jìn)行拆分成多個項(xiàng)目。在建立新的項(xiàng)目中,經(jīng)常需要做一些重復(fù)的工作,比如說拷貝一下常用的工具類,通用代碼等等。所以就可以做一個基礎(chǔ)的項(xiàng)目方便使用,在經(jīng)歷新項(xiàng)目的時候,直接在基礎(chǔ)項(xiàng)目上進(jìn)行簡單配置就可以開發(fā)業(yè)務(wù)代碼了。

基礎(chǔ)項(xiàng)目該包含哪些東西。


  • Swagger在線接口文檔。
  • CodeGenerator 代碼生成器。
  • 統(tǒng)一返回。
  • 通用的分頁對象。
  • 常用工具類。
  • 全局異常攔截。
  • 錯誤枚舉。
  • 自定義異常。
  • 多環(huán)境配置文件。
  • Maven多環(huán)境配置。
  • 日志配置。
  • JenkinsFile。
可以在評論區(qū)進(jìn)行補(bǔ)充,我把 Spring Boot 相關(guān)的文章整理成了 PDF,關(guān)注 Java后端,后臺回復(fù) 666 下載這本 Java技術(shù)棧手冊。


Swagger

寫接口文檔通常是一件比較頭疼的事情,然而swagger就用是用來幫我們解決這個問題的??梢栽诰€生成接口文檔,并且可以在頁面上進(jìn)行測試。
可以非常清楚的顯示,請求數(shù)據(jù)已經(jīng)響應(yīng)數(shù)據(jù)。當(dāng)然這一切都需要在代碼中進(jìn)行配置。
注意的點(diǎn):接口文檔只能在測試/開發(fā)環(huán)境開啟,其他環(huán)境請關(guān)閉。


常用的Swagger注解


  • @Api用于Controller
  • @ApiOperation用于Controller內(nèi)的方法。
  • @ApiResponses用于標(biāo)識接口返回數(shù)據(jù)的類型。
  • @ApiModel用于標(biāo)識類的名稱
  • @ApiModelProperty用于標(biāo)識屬性的名稱


案例

@RestController
@Api(tags = "用戶")
@AllArgsConstructor
@RequestMapping("/user")
public class UserController {
????private?IUserService?userService;

????
????@ApiOperation("獲取用戶列表")
????@GetMapping("/listUser")
????@ApiResponses(
????????????@ApiResponse(code = 200, message = "操作成功", response = UserVo.class)
????)
????public?ResultVo?listUser(@Validated?ListUserForm listUserForm){
????????return?ResultVoUtil.success(userService.listUser(listUserForm));
????}

}


@Data
@ApiModel("獲取用戶列表需要的表單數(shù)據(jù)")
@EqualsAndHashCode(callSuper = false)
public class ListUserForm extends PageForm {
????
????@ApiModelProperty("用戶狀態(tài)")
????@NotEmpty(message = "用戶狀態(tài)不能為空")
????@Range(min = -1?, max = 1?, message = "用戶狀態(tài)有誤")
????private String status;

}
對應(yīng)的swagger的配置可以查看基礎(chǔ)項(xiàng)目內(nèi)的SwaggerConfiguration.java.

CodeGenerator代碼生成器。

mybatis_plus代碼生成器可以幫我們生成
entity,service,serviceImpl,mapper,mapper.xml。省去了建立一大堆實(shí)體類的麻煩。
由于配置太長這里就不貼出來了,對應(yīng)的CodeGenerator的配置可以查看基礎(chǔ)項(xiàng)目內(nèi)的CodeGenerator.java.

常用的封裝


統(tǒng)一返回 ResultVo

將所有的接口的響應(yīng)數(shù)據(jù)的格式進(jìn)行統(tǒng)一。
@Data
@ApiModel("固定返回格式")
public class ResultVo {
????
????@ApiModelProperty("錯誤碼")
????private Integer code;

????
????@ApiModelProperty("提示信息")
????private String message;

????
????@ApiModelProperty("響應(yīng)數(shù)據(jù)")
????private Object data;

}

抽象表單 BaseForm

public?abstract?class?BaseForm<T> {
????
????public?abstract?T buildEntity();

}


有小伙伴可能有疑問了,這個類有啥用呢。先看一下,下面的代碼。


@Override
public?boolean?addUser(AddUserForm userForm)?{
????????User user = new?User();
????????user.setNickname(userForm.getNickname());
????????user.setBirthday(userForm.getBirthday());
????????user.setUsername(userForm.getUsername());
????????user.setPassword(userForm.getPassword());
????????return?save(user);
????}
重構(gòu)一下,感覺清爽了一些。
@Override
public?boolean?addUser(AddUserForm userForm)?{
????User user = new?User();
????BeanUtils.copyProperties(this,user);
????return?save(user);
}
使用BaseForm進(jìn)行重構(gòu) AddUserForm 繼承 BaseForm并重寫buildEntity

@Data
@EqualsAndHashCode(callSuper = false)
public?class?AddUserForm extends?BaseForm {
????
????private?String?nickname;

????private?Date?birthday;
????
????private?String?username;
????
????private?String?password;

????
????@Override
????public?User buildEntity() {
????????User user = new?User();
????????BeanUtils.copyProperties(this,user);
????????return?user;
????}
}

@Override
public?boolean?addUser(AddUserForm userForm)?{
????return?save(userForm.buildEntity());
}

上面的代碼有沒有種似曾相識的感覺,很多情況都是將接受到的參數(shù),轉(zhuǎn)變成對應(yīng)的實(shí)體類然后保存或者更新。所以對于這類的form可以繼承baseform并實(shí)現(xiàn)buildEntity()這樣可以更加符合面向?qū)ο螅?/span>service不需要關(guān)心form如何轉(zhuǎn)變成entity,只需要在使用的時候調(diào)用buildEntity()即可,尤其是在form -> entity相對復(fù)雜的時候,這樣做可以減少service內(nèi)的代碼。讓代碼邏輯看起來更加清晰。


通用的分頁對象

涉及到查詢的時候,絕大多數(shù)都需要用到分頁,所以說封裝分頁對象就很有必要。可以注意下 PageForm.calcCurrent()、PageVo.setCurrentAndSize()、PageVo.setTotal()這個幾個方法。

PageForm

@Data
@ApiModel(value = "分頁數(shù)據(jù)", description = "分頁需要的表單數(shù)據(jù)")
public?class?PageForm<T?extends?PageForm>{
????
????@ApiModelProperty(value = "頁碼 從第一頁開始 1")
????@Min(value = 1, message = "頁碼輸入有誤")
????private?Integer current;

????
????@ApiModelProperty(value = "每頁顯示的數(shù)量 范圍在1~100")
????@Range(min = 1, max = 100, message = "每頁顯示的數(shù)量輸入有誤")
????private?Integer size;

????
????@ApiModelProperty(hidden = true)
????public?T calcCurrent(){
????????current = (current - 1?) * size;
????????return?(T) this;
????}
}

PageVo

@Data
public?class?PageVo<T> {
????@ApiModelProperty(value = "分頁數(shù)據(jù)")
????private?List records;
????@ApiModelProperty(value = "總條數(shù)")
????private?Integer total;
????@ApiModelProperty(value = "總頁數(shù)")
????private?Integer pages;
????@ApiModelProperty(value = "當(dāng)前頁")
????private?Integer current;
????@ApiModelProperty(value = "查詢數(shù)量")
????private?Integer size;
????@ApiModelProperty(hidden = true)
????public?PageVo setCurrentAndSize(PageForm pageForm){
????????BeanUtils.copyProperties(pageForm,this);
????????return?this;
????}
????@ApiModelProperty(hidden = true)
????public?void?setTotal(Integer total)?{
????????this.total = total;
????????this.setPages(this.total % this.size > 0?? this.total / this.size + 1?: this.total / this.size);
????}
}

案例


ListUserForm


@Data
@ApiModel("獲取用戶列表需要的表單數(shù)據(jù)")
@EqualsAndHashCode(callSuper = false)
public class ListUserForm extends PageForm {
????
????@ApiModelProperty("用戶狀態(tài)")
????@NotEmpty(message = "用戶狀態(tài)不能為空")
????@Range(min = -1?, max = 1?, message = "用戶狀態(tài)有誤")
????private String status;

}


UserServiceImpl


@Override
public?PageVo listUser(ListUserForm listUserForm)?{
????PageVo pageVo = new?PageVo().setCurrentAndSize(listUserForm);
????pageVo.setTotal(countUser(listUserForm.getStatus()));
????pageVo.setRecords(userMapper.listUser(listUserForm.calcCurrent()));
????return?pageVo;
}

private?Integer countUser(String status){
????return?count(new?QueryWrapper().eq("status",status));
}


UserController


@ApiOperation("獲取用戶列表")
@GetMapping("/listUser")
@ApiResponses(
????????@ApiResponse(code = 200, message = "操作成功", response = UserVo.class)
)
public ResultVo listUser(@Validated?ListUserForm listUserForm){
????return?ResultVoUtil.success(userService.listUser(listUserForm));
}
注意的點(diǎn)
  • PageVo在實(shí)例化的時候需要設(shè)置當(dāng)前頁每頁顯示的數(shù)量 可以調(diào)用setCurrentAndSize()完成。
  • 進(jìn)行分頁查詢的時候,需要計(jì)算偏移量。listUserForm.calcCurrent()
為什么要計(jì)算偏移量呢?
  • 假如查詢第1頁每頁顯示10條記錄,前端傳遞過來的參數(shù)是current=1&&size=10,這個時候limit 1,10沒有問題。
  • 假如查詢第2頁每頁顯示10條記錄,前端傳遞過來的參數(shù)是current=2&&size=10,這個時候limit 2,10就有問題,實(shí)際應(yīng)該是limit 10,10。calcCurrent()的作用就是如此。
為什么不用MybatisPlus自帶的分頁插件呢??
自帶的分頁查詢在大量數(shù)據(jù)下,會出現(xiàn)性能問題。

常用工具類

常用工具類可以根據(jù)自己的開發(fā)習(xí)慣引入。

異常處理

異常處理的大致流程主要如下。
  • 異常信息拋出 -> ControllerAdvice 進(jìn)行捕獲格式化輸出內(nèi)容
  • 手動拋出CustomException并傳入ReulstEnum ——> 進(jìn)行捕獲錯誤信息輸出錯誤信息。


自定義異常


@Data
@EqualsAndHashCode(callSuper = false)
public?class?CustomException?extends?RuntimeException?{
????
????private?final?Integer code;

????
????private?final?String method;

????
????public?CustomException(ResultEnum resultEnum, String method)?{
????????super(resultEnum.getMsg());
????????this.code = resultEnum.getCode();
????????this.method = method;
????}

????
????public?CustomException(Integer code, String message, String method)?{
????????super(message);
????????this.code = code;
????????this.method = method;
????}

}


錯誤信息枚舉

根據(jù)業(yè)務(wù)進(jìn)行添加。
@Getter
public?enum?ResultEnum {
????
????UNKNOWN_EXCEPTION(100, "未知異常"),
????
????ADD_ERROR(103, "添加失敗"),
????
????UPDATE_ERROR(104, "更新失敗"),
????
????DELETE_ERROR(105, "刪除失敗"),
????
????GET_ERROR(106, "查找失敗"),
????;

????private?Integer code;

????private?String?msg;

????ResultEnum(Integer code, String?msg) {
????????this.code = code;
????????this.msg = msg;
????}

????
????public?static?ResultEnum getByCode(int code){
????????for?(ResultEnum resultEnum : ResultEnum.values()) {
????????????if(code == resultEnum.getCode()){
????????????????return?resultEnum;
????????????}
????????}
????????return?null;
????}

}

全局異常攔截

全局異常攔截是使用@ControllerAdvice進(jìn)行實(shí)現(xiàn),常用的異常攔截配置可以查看 GlobalExceptionHandling。
@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandling {
????
????@ExceptionHandler(value?= CustomException.class)
????public ResultVo processException(CustomException e) {
????????log.error("位置:{} -> 錯誤信息:{}", e.getMethod() ,e.getLocalizedMessage());
????????return?ResultVoUtil.error(Objects.requireNonNull(ResultEnum.getByCode(e.getCode())));
????}

????
????@ResponseStatus(HttpStatus.OK)
????@ExceptionHandler(Exception.class)
????public ResultVo exception(Exception e) {
????????e.printStackTrace();
????????return?ResultVoUtil.error(ResultEnum.UNKNOWN_EXCEPTION);
????}
}

案例


Controller

@ApiOperation("刪除用戶")
@DeleteMapping("/deleteUser/{id}")
public ResultVo deleteUser(@PathVariable("id") String id){
????userService.deleteUser(id);
????return?ResultVoUtil.success();
}


Service

@Override
public?void?deleteUser(String?id) {
????
????if(!removeById(id)){
????????throw?new?CustomException(ResultEnum.DELETE_ERROR, MethodUtil.getLineInfo());
????}
}


結(jié)果
將報錯代碼所在的文件第多少行都打印出來。方便排查。
注意的點(diǎn)
所有手動拋出的錯誤信息,都應(yīng)在錯誤信息枚舉ResultEnum進(jìn)行統(tǒng)一維護(hù)。不同的業(yè)務(wù)使用不同的錯誤碼。方便在報錯時進(jìn)行分辨??焖俣ㄎ粏栴}。

多環(huán)境配置


SpringBoot多環(huán)境配置

對于一個項(xiàng)目來講基本都4有個環(huán)境dev,test,pre,prod,對于SpringBoot項(xiàng)目多建立幾個配置文件就可以了。然后啟動的時候可以通過配置spring.profiles.active 來選擇啟動的環(huán)境。
java?-jar?BasicProject.jar?--spring.profiles.active=prod??


Maven多環(huán)境配置

假如想在打包的時候動態(tài)指定環(huán)境,這個時候就需要借助Maven的xml來實(shí)現(xiàn)。
配置XML
<profiles>
????<profile>
????????
????????<id>devid>

????????<activation>
????????????<activeByDefault>trueactiveByDefault>
????????activation>
????????<properties>
????????????<activatedProperties>devactivatedProperties>
????????properties>
????profile>
????<profile>
????????
????????<id>testid>
????????<properties>
????????????<activatedProperties>testactivatedProperties>
????????properties>
????profile>
????<profile>
????????
????????<id>preid>
????????<properties>
????????????<activatedProperties>preactivatedProperties>
????????properties>
????profile>
????<profile>
????????
????????<id>prodid>
????????<properties>
????????????<activatedProperties>prodactivatedProperties>
????????properties>
????profile>
profiles>


更改application.yml


spring:
??profiles:
????# 選擇環(huán)境
????active: @activatedProperties@
使用案例


mvn clean package?-P prod
mvn clean package?-P pre
mvn clean package?-P test


打包完可以解壓開查看application.yml 會發(fā)現(xiàn)spring.profiles.active=@activatedProperties@ 發(fā)生了改變。

日志配置

采用logback日志配置

JenkinsFile

JenkinsFile肯定顧名思義是給jenkins用的。主要是配置項(xiàng)目根據(jù)如何進(jìn)行構(gòu)建并發(fā)布到不同的環(huán)境。需要去了解pipeline語法,以及如何配置jenkins。
JenkinsFileDemo?https://gitee.com/huangxunhui/basic_project/blob/master/Jenkinsfile

代碼地址

https://gitee.com/huangxunhui/basic_project.git

作者:?不一樣的科技宅?

鏈接:juejin.im/post/6844904083942277127


更多精彩:
Java實(shí)戰(zhàn)項(xiàng)目視頻,給需要的讀者,收藏!
Centos7搭建k8s環(huán)境教程,一次性成功!
看看人家那后端API接口寫得,那叫一個優(yōu)雅!
一款開源的視頻彈幕功能項(xiàng)目,不用重復(fù)造輪子了!
一款開源 SpringBoot 后端管理系統(tǒng),代碼開源了!
開源 SpringBoot 商城系統(tǒng),真香!
關(guān)注公眾號,查看更多優(yōu)質(zhì)文章

最近,整理一份Java資料Java從0到1,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。
獲取方式:關(guān)注公眾號并回復(fù)?Java?領(lǐng)取,更多Java內(nèi)容陸續(xù)奉上。
明天見(??ω??)??
瀏覽 35
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 北条麻妃无码在线观看| 人人天天操| 天天日夜夜添| 在线观看国产视频| 久久九九免费视频| 免费在线观看A| 欧美成人在线视频网站| 日韩毛| 日本黄色影视| 一级二级三级毛片| 91ThePorn国产在线观看| 成人黄色毛片| 麻豆精品一区二区三区| jizz免费在线观看| 人人爽人人爱| 黄色视频免费在线观看| 午夜国产在线视频| 不卡无码高清| 久久丝袜| 黄色电影一级| 又黄又爽的视频| 在线无码av| 欧美日韩午夜福利视频| 天天撸天天日| 羞羞视频com.入口| 中文无码在线观看| 亚洲AV自拍| 蜜桃人妻无码AV天堂三区| 豆花视频成人版www满18| 国产操片| 亚洲色男人天堂| 91视频在| 国产成人在线免费观看| 亚洲jizzjizz| 美腿丝袜中文字幕精品| 欧美A∨| 91精彩视频| 国产精品二| 国产成人视频在线| 亚洲色人妻| av一区在线观看| 尤物最新网址| 亚洲无码在线观看免费| 51妺嘿嘿在线电影免费观看| 日韩高清一区二区| 波多野结衣中文字幕久久| 一本大道东京热AV| 五月天丁香社区| 伊人综合干| 五月天国产| 国产成人免费| 中文字幕日韩AV| 中国老熟女重囗味HDXX| 中文字幕乱码亚洲无线码按摩| 色哟哟在线观看| 在线无码免费观看| 精品国产999久久久免费| 日韩在线播放视频| 91精品国产成人观看| av東熱激情东京热| 国产免费黄色片| 败火老熟女ThePorn视频| 大香蕉AV在线观看| 亚洲在线免费| 免费视频99| 淫揉BBB揉揉揉BBBBB| 亚洲成人性爱在线| 亚洲va视频| 亚洲成人69| 福利逼站| 无码22p| 久草不卡| 婷婷视频| 国产女人18毛片水真多成人如厕 | 午夜无码av| 国产无遮挡又黄又爽在线观看| 麻豆精品在线观看| 五月天婷婷乱伦| 日本a在线免费观看| 性爱乱伦视频| 91二区三区| H无码| 国产精品伊人| 久久久国产91桃色一区二区三区| 无码九九九| 天天插天天射| 日韩美女在线视频| 日韩1页| 日韩精品免费一区二区在线观看| 在线看片你懂的| 小早川怜子精品一区二区| 亚洲无码观看视频| 国产午夜精品视频| 中国操逼| 91一级A片在线观看| av资源在线播放| 国产夫妻自拍av| 少妇搡BBBB搡BBB搡造水爽| 欧洲在线观看| 欧美三P囗交做爰XXXⅩ| 国产av日韩av| 青娱乐亚洲视频| 日韩AV无码成人精品| 精品福利导航| 国产欧美日韩一区二区三区| 中文字幕视频在线直播| 暖暖在线视频| 亲子乱婬-一级A片| 操欧美逼| 精品999999| 亚洲中文av| 欧美大香蕉伊人| 激情五月毛片| 天天综合天天做天天综合| 超碰2021| 热99精品| WWW久久久| 久久久久亚洲AV成人片| 91亚洲精品乱码久久久久久蜜桃 | 国产精品久久久久久久久久乐趣播 | 初尝人妻滑进去了莹莹视频| 欧美熟妇性爱视频| 大鸡吧在线视频| jizz丝袜| 操噜噜噜噜噜插| 天天射天天射| 精品中文视频| 免费无码成人片在线观看在线 | 波多野结衣福利视频| 麻豆视频在线观看| 影音先锋成人无码| 亚洲色婷婷久久精品AV蜜桃| www.黄色在线观看| 欧美综合亚洲| 亚洲V在线观看| 91福利导航| 五月丁香六月激情综合| 无码任你躁久久久久| 久久久久无码| 色综合色综合色综合| 强开小嫩苞一区二区三区视频| 中文字字幕在线中文| 精品视频在线免费| 亚洲国产爱| 黄色视频网站观看| 黄片网站在线观看| 免费无人区一码二码乱码怎么办| TheAV精尽人亡av| 韩日一级17c| 2014AV天堂网| 日韩在线观看中文字幕| 欧美不卡在线视频| 污视频免费在线观看| 91丨九色丨国产在线| 粉嫩小泬BBBB免费看| 亚洲狠狠操| AV午夜| 亚洲综合中文字幕在线播放| 中文字幕在线看| 免费欧美性爱视频| 亚洲无码高清在线视频| 亚洲性图第一页| 亚洲激情网| caopeng97| 精品九九九九九| 久久1234| 日韩人妻一区二区三区| 五月天一区二区| 北条麻妃亚洲无码| 蜜桃久久久久久久| av女人天堂| 精品国产黄色| 亚洲高清超级无码在线视频观看| 91精品国产乱码| 伊人毛片| 波多野结衣视频在线| 亚洲码无人客一区二区三区| 小黄片免费看| 国产欧美日韩成人| 搡BBBB搡BBBB搡BBB| 欧美一级网站| 波多野结衣无码在线视频| 国产一级乱伦| 日韩亚洲中文在线| 成人免费无码婬片在线| www.精品视频| 在线操B| 亚洲色图欧美| 青春草视频| 精品国产乱码久久久久久郑州公司| 谁有毛片网址| 97人妻精品一区二区三区软件| 亚洲精品成人av| 五月天无码视频| 狠狠干2021| 黄色不卡| 波多野结衣无码一区| 三级片网站国产| 91香蕉| 91伊人网| 99热91| 九九色网| 九色蝌蚪视频| 91麻豆国产福利在线观看| 久草资源视频| 日韩精品一区二区三区免费观看高清 | 亚洲精品成人片在线观看精品字幕| av影音先锋在线| 手机看片福利永久| 草逼免费视频| 青青草原AV| 日韩高清无码不卡| 特级婬片AAAAAAA级| 又黄又湿的视频| a片在线观看免费| 国产欧美一区二区三区特黄手机版| 91大神免费观看| 人人爱人人草| 黑人无码在线| 翔田千里一区二区三区| 先锋成人AV| 乱子伦日B视频| 精品国内自产拍在线观看视频| 亚洲无码少妇| 性欧美xxxx| 一级成人片在线观看| 中文字幕在线观看1| 中文字幕色| av中文在线观看| 日韩在线不卡视频| 操逼网站在线观看| 一道本高清无码| 国产AV日韩AV| 国产麻豆性爱视频| av无码免费观看| 熟妇槡BBBB槡BBBB图| 国内精品久久久久久久久久| 51妺妺嘿嘿午夜成人| 伊人久久久久久久久久久| 无码精品一区二区三区在线观看 | 超碰在线人人操| 成人亚洲AV日韩AV无码| www.91国产| 免费黄片视频在线观看| 大蕉网| 制服丝袜在线视频| 一区二区三区不卡在线| 18害羞勿进网站国产| 亚洲色图欧美在线| 国产又粗又大又长| 波多野结衣在线精品| 北条麻妃中文字幕旡码| 操逼短视频| 国产污视频在线观看| 久久永久免费| 性久久久久久久久久| 大香蕉综合网站| 麻豆AV免费看| 草逼动态图| 欧美黄色片网站| 成人黄色视频网站在线观看 | 国模无码在线| 亚欧黄色| 婷婷成人视频| 尤物网站在线播放| 三级片视频网址| 小视频你懂的| 91视频网站在线| 能看的AV网站| 五月天久久婷婷| 无码精品人妻一区二区三区漫画| 精品1234| 国产三级在线播放| 91性爱视频| 一区二区在线不卡| 国产乱国产乱老熟300视频| 久久久精品无码| 91丨精品丨国产丨丝袜| xxx一区二区| 一个人看的www日本高清视频| 丁香激情五月少妇| 亚洲视频黄色| 搡bbb| 在线视频一区二区三区| 国产高清在线视频| 色婷婷一区二区三区四区五区精品视 | 99热精品在线| 久久黄色毛片| 亚洲天堂网2025| www.一级片| 国产精品扒开腿做爽爽爽视频| 麻豆自拍偷拍视频| 特大妓女BBwBBWBBw| 无码av免费精品一区二区三区| 高清无码视频在线免费观看| 91精品久久久久| 福利一区二区视频网| 麻豆精品传媒国产剧的特点| 九七无码| 欧性猛交ⅩXXX乱大交| 网站毛片| 97操逼| 麻豆91麻豆国产传媒| 日韩天堂av| 成人黄色在线观看视频| 国产三级一区二区| 国产伊人在线| av日韩无码| 操逼日韩| 黄色视频网站日本| 国产综合久久久777777色胡同 | 911精品国产一区二区在线| 嫩草国产| 欧美丝袜脚交xxxxBH| 爱爱高清视频| 一级黄色片网站| 蜜芽成人网| 一区二区三区无码在线| 三级成人网站| 又爽又黄免费网站97双女| 亚洲黄色在线看| 亚洲无码在线免费视频| 女人的天堂AV| 牛牛影视一区二区| 91久九九| 国产美女全裸网站| 无码免费观看视频| 青娱乐国产精品| 色情片免费看| 桃色一区| 俺也操| 无码人妻精品一区二区三区温州 | 北条麻妃一区二区三区-免费免费高清观看 | 国产av黄色| 亚洲精品乱码久久久久久按摩观| 国产精品免费一区二区三区四区视频| 色五月激情网| 日本一区二区三区在线视频| 长泽梓黑人初解禁BDD07| 91人人妻人人| 日韩一级黄色毛片| 亚洲免费视频在线播放| 樱桃码一区二区三区| 日韩欧美一区二区在线观看| 久久骚| 亚洲午夜福利| 中国a一片一级一片| www.狠狠爱| 久久性| 天堂在线最新资源| 免费黄视频在线观看| 国产三级国产三级国产| 日韩人妻丰满无码区A片| 无码日批| 欧一美一色一伦一A片| www.99| 91在线无码精品入口电车| 婷色五月天| 国产视频久久久| 大香蕉在线播| 热久久这里只有精品| 日韩在线视频免费观看| 18精品爽视频| 安徽妇搡BBBB搡BBBB| 无码一区二区三区四区| 国产又爽又黄网站免费观看| 欧美成人第一页| 人人操在线公开| 波多野59部无码喷潮| 婷婷五月天久久| www.99国产| 人妻精品一区二区三区| 美少妇AV| 亚洲国产精品VA在线看黑人| 狠狠色婷婷777| 午夜无码电影| 亚洲中文字幕无码爆乳av| 激情五月伊人| 国产www在线观看| 日韩中文字幕一区二区三区| 一级香蕉视频| www.人人操| 亚洲去干网| 中文无码在线观看中文字幕av中文 | 人人爽人人爽| 99r6热只有精品免费观看| 怡春院久久| 日韩AV无码电影| 久久久久亚洲AV无码成人片 | 天天干天天日天天操| 欧美日韩一区二区三区四区| 亚洲A√| 国产淫荡视频| 天堂网在线视频| 屁屁影院CCYYCOM发布地| 丝袜美腿亚洲综合| 色综合五月婷婷| 在线视频一区二区三区四区| 熟妇人妻中文字幕无码老熟妇| 久久综合成人| 亚洲成人综合网站| 91精品久久久久久久| 久久综合婷婷| 亚洲人成小说| 国内精品无码| 色优久久| 男人的天堂社区| 少妇搡BBBB搡BBBB毛多多| 无码人妻精品一区二区三区温州| 日本无码在线视频| 国产精品视频免费观看| 91看片看婬黄大片Videos | 五月天丁香成人| 国产久久精品| 亚洲国产精品成人综合色五月| 91麻花| 婷婷五月激情网| 久久视频这里有精品| 爆乳尤物一区二区三区| 中文无码熟妇一区二区| 国产黄色片视频| 日韩av三级在线观看| 成人黄色小电影| 日本免费黄色| jizz日韩| 五月天黄色视频| 日日摸夜夜| 五月天黄色视频| 亚洲精品国产成人AV在线| 国产免费无码一区二区| AV在线四季综合网站| 欧美性猛交XXXX乱大交| 手机AV在线| 97精品久久| 在线观看免费无码视频| 台湾色综合| 国产毛片基地| 日韩欧美黄色片| 影音先锋成人资源网| 毛片性爱视屏| 日韩亚洲在线| 国精品无码A区一区二区| 夜夜骑天天操| 扒开让我91看片在线看| 欧美美穴| 日韩一级内射| 黄片免费大全| 日韩操屄视频| 北条麻妃在线观看香蕉| 亚洲AV无码国产综合专区| 天天扣天天操| 亚洲日韩视频在线| 日本乱轮视频| 激情在线视频| 中文字幕第11页| 色图在线观看| 精品在线第一页| 影音先锋av网| 蜜桃久久99精品久久久酒店| 无码国产精品一区二区视频| 亚洲女人天堂| JlZZJLZZ亚洲美女18| 大香蕉在线视频75| 人人摸人人射| 91久久久久久久18| 成人在线观看AV| 成人黄色视频免费| 亚洲免费观看A∨中文| 成人三级在线观看| 99爱免费视频| 女孩自慰在线观看| 99热国产免费| 成人做爰100片免费视频| 乱伦视频网| 欧美毛片在线观看| 青青免费视频| 无码免费播放| 国产91探花精品一区二区| 周晓琳AV| 成人毛片100免费观看| 国产美女免费视频| 日韩人妻无码一区二区三区七区 | 婷婷情色五月| 91大鸡巴| 91精品在线免费观看| 夜夜爽夜夜爽| 亚洲中文无码字幕| 91香蕉视频免费在线观看| 影音先锋无码AV| 国产黄色在线播放| 日本亚洲中文字幕| 欧美aaa| 欧美手机在线视频| 蝌蚪窝免费视频| V天堂在线视频| 中文字幕第一区| 性爱黄色视频| 国产一级AA大片毛片| 外国一级片| AV黄色片| 亚洲秘无码一区二区| 77777色| 国产jk在线| 国产午夜成人视频| 日韩中文字幕在线视频| 精品成人A片久久久久久不卡三区 免费看成人A片无码照片88hⅤ | 免费a视频在线观看| 国产精品色综合| 黑人又粗又大XXXXOO| 色五月婷婷五月| 午夜无码三级| 91丨豆花丨国产极品| 免费国产黄色| 男人天堂视频在线观看| 国产日韩一区二区三免费高清| 三级片久久| 日韩高清无码不卡| 人成无码| 久久婷婷青青| 日本成人电影| 91精品免费| 99国产热| 99r6热只有精品免费观看| 成人黄色毛片视频| 中文字幕乱码免费综合久久| 波多野结衣黄色| 九九热精品视频在线观看| 99久在线精品99re8| 国产又粗又猛又爽又黄91精品| 免费A片在线| 日韩大屌操| 操久久| 天天操网站| av婷婷在线| av午夜激情| 制服丝袜在线视频| 中日韩黄色视频| 天天色区| 土耳其电影《爱与罚》| 大地影院在线资源观看| 人妻成人网| 中文字幕aV在线| 成人在线观看网| 在线观看黄片| 上海熟搡BBB搡BBBB| 秋霞午夜视频| 91在线无码精品秘入口男同| 爆操网站| 國產精品777777777| 天天艹av| 欧美一级片免费观看| AV观看免费| 西西444WWW无码视频软件| 婷婷激情中文字幕| 亚洲精品国产精品乱玛不99| 青青草在线视频免费观看| 亚洲网站在线| 亚洲成人网在线| 三浦恵子一级婬片A片| 亚洲精品高清视频| 人人操天天干| 午夜精品18视频国产| 任你爽在线视频| 香蕉国产AV| 国产三级在线| 免费黄网站| 久久精品中文字幕| 亚洲AV第二区国产精品| 亚洲成人无码AV| 免费在线A| 老太色HD色老太HD| 国产三级国产三级国产| 日韩欧美一| 国产视频你懂的| www.bbbb| 五月天网址| 激情无码五月天| 人妻丝袜中出北条麻妃| 爱搞搞就要搞| 高清无码人妻| 九九热在线视频| 精品夜夜澡人妻无码AV| 四虎www| 特黄特黄免费看| 国产精品成人AV在线| 六月丁香网| 欧美日韩黄色片| 人人操超碰在线观看| 激情婷婷六月| 久久艹艹| 毛片A级成人片| 免费国产黄色视频| 91欧美精品成人AAA片| 人妻少妇被猛烈进入中文字幕| 69AV在线| 亚洲色综合| 亚洲乱伦视频| 国产精品久久久久久久久久久久久| 18禁一区二区| 无码欧精品亚洲日韩一区| 国产一毛a一毛a在线观看| 怡春院中文字幕| 中文人妻第9页| 日韩精品久久久久久久| 成人精品久久| 亚洲一区三区| 香蕉伊人视频| 激情一级| 11一12周岁女毛片| 亚洲超级高清无码第一在线视频观看| 午夜AV大片| 无码视频播放| 麻豆中文字幕| 久久小视频| 无码狠狠躁久久久久久久91| 亚洲精品秘一区二区三小| 人人爽人人操人人| 亚洲免费黄色片| 少妇人妻一级A毛片| 免费黄片视频大全| 欧美性BBwBBwBBwHD| 国产欧美综合视频一区二区在线| 在线不卡| www.91自拍| 操逼网站大全| 少妇黄色视频| 四虎永久在线精品| 2025av在线| 国产久久在线观看| 中文字幕在线免费观看电影| 九九草影院| 久操网站| 日韩欧美一级视频| 色老板最新地址| 亚洲日韩在线中文字幕| 免费涩涩无遮挡18国产| 久久精品婷婷| 99r6热只有精品免费观看| 91人体视频| 特猛特黄AAAAAA片| 一本一道久久a久久精品综合| 国产成人在线视频| 久久三级| 91视频亚洲| 东京热精品视频| 国产亚洲欧美在线| 人妻字幕| 麻豆国产一区二区三区四区| 国产精品二区高清在线苍井空 | 亚洲日韩中字| 亚洲性爱影院| 色婷婷AV一区二区三区之e本道| 亚洲.欧美.丝袜.中文.综合| www.豆花视频成人版| 无码人妻精品一区二区蜜桃漫画| 2025国产在线| 亚洲天堂国产| 人妻精品免费| 嗯嗯啊啊网站| 午夜h片| 69久久久久| 北条麻妃在线视频| 黄色一级片在线| 日逼视| 亚洲国产成人无码a在线播放 | 性爱麻豆| 十八毛片| 蜜桃Av噜噜一区| 色婷婷国产精品综合在线观看| 人人操超碰在线| 国产视频黄| 99九九视频| 国产18毛片18水多精品| 色情一级AA片免费观看| 青娱乐91视频| 伊人色播| 国产男女AV| 欧美成人高清视频| 中文字幕在线国产| 99热在线观看免费| 免费看黄A级毛片成人片| 黑人狂躁女人高潮视频| AV无码观看| 波多野吉衣av| 特级西西444www大胆免费看| 天天伊人| 日韩国产欧美| 青娱AV| 性A免费在线播放| 影音先锋中文字幕资源| 欧美乱轮| 日韩精品成人AV| 特黄A级毛片| 成年人免费看视频| 国产成人小电影| 影音先锋三区| 日本黄色电影在线播放| 欧美日韩字幕| 蜜臀AV网| 啪一啪操一操| 色五月婷婷基地| JULIA超乳JULIA无码| 欧美日韩爱爱| 日本高潮视频| 国产成人在线免费视频| 亚洲无码在线播放| 亚洲精品自拍| 亚洲日韩电影| 亚洲中文字幕在线观看| 国产18欠欠欠一区二区| 成人AV在线一区二区| 无码精品人妻一区二区| 亚洲jiZZjiZZ日本少妇| 水蜜桃视频在线播放| 欧美视频在线观看一区| 亚洲黄色在线观看视频| 狠狠躁日日躁夜夜躁A片男男视频| 在线亚洲色图| 精品久久一区二区| 午夜精品电影| 国产精品女| 白浆在线| 成人无码精品| 羞羞色院91蜜桃| 搡BBBB搡BBB搡五十粉嫩| 麻豆视频在线免费观看| 8050午| 8050午夜一级| 激情五月婷婷综合| 国产精品高潮呻吟久久| 京东一热本色道久久爱| 91久久国产综合久| 色伊人| 蜜柚AV| 五月婷婷六月丁香| 日韩精品一区二区三区四在线播放| 国产三级黄色片| www.91在线视频| 精品国产区一区二| h片网站在线观看| 日本在线视频一区二区| 99热都是精品| 牛牛Av| 亚洲综合区| 51黄片库| 俺去俺来也WWW色老板| 四季AV综合网站| 亚州无码视频| 天天射天天| 2025av中文字幕| 5252a我爱haose01我愿| 手机看片1024你懂的| 国产aaaaaa| 极品一线天小嫩嫩真紧| 免费看成人A片无码照片88hⅤ | 欧美黄色网址| 五月丁香天堂网| 一级A片在线观看| 日本操骚逼| 国产亚洲无码| 91大神在线免费观看| 欧美成人一级片| 处破女初破全过免费看| 国产又爽又黄在线看| 女人的天堂av| 日韩性爱网站| 国产逼逼| 欧美精品久久久久久久久| 中字无码制服| 欧美VA| 欧美老妇操逼| 亚洲欧美视频| 操逼大毛片| 欧美一二三| 日韩无码少妇| 日韩一区二区在线视频| 国产成人小视频| 97伊人| 久久g热| 一边做一边说国语对白| 欧美午夜伦理| 99久在线精品99re8热| 操碰视频| 国产精品免费久久影院| 免费69视频| 综合精品7799| 欧美日韩国产成人在线| 波多野结衣亚洲| 一区二区三区欧美| 久月婷婷| 91av一区二区三区| 无码视频在线看| 图片区小说区区亚洲五月| 婷婷欧美| 国产做受精品网站在线观看| 超碰永久| 日日搔av一区二区三区| 2025av天堂| 成人黄色A片| 蜜臀AV一区二区三区免费看| 日本免费在线观看视频| 激情婷婷网| 亚洲456| 中文字幕av久久久久久欧洲尺码| 艾操网| 成年人免费公开视频| 日韩夜夜操| 黄色片视频在线观看| 51成人网站| 久久这里有精品视频| 99唉撸吧视频免费| 你懂的视频在线观看| 香蕉成人视频| 中文资源在线观看| 青娱乐亚洲精品| 专区无日本视频高清8| 国产成人性| 国内自拍网站| 校园春色亚洲无码| 免费黄色视频观看| 内射网站| AV电影天堂网| 中文字幕第11页| 精品av| 久草福利| 婷婷电影网| 国产农村妇女精品一二区| 最近中文字幕| 黄片免费网站| 成人性生交片无码免费看人| 大香蕉大香蕉网| 农村少妇久久久久久久| 性色网站| 超碰97观看| 高清无码第一页| 九色影院| 日韩美女免费性爱视频| 欧美成人69| 人人操人人骑| 蜜桃av秘无码一区二区| 免费成人AV| 免费播放黄色成人片| 亚洲激情视频在线观看| 一级免费视频| 西西444WWW无码视频软件| 日韩精品丰满无码一级A片∴| 99re在线视频观看| 国产无码av| 欧美大屌网站| 亚洲天堂无码高清| 免费A片在线观看| 欧美性猛交XXXX乱大交| 久久国产乱子伦精品免费午夜... 国产毛片精品一区二区色欲黄A片 | 婷婷五月香| 波多野结衣无码流出| 一级a一级a免费观看免免黄‘/| 麻豆国产91在线播放| 午夜激情在线观看| 精品交换一区二区三区无码| 特级西西444WWW高清| 特黄aaaaaaaa真人毛片| 欧美不卡在线播放| 国产A级毛片久久久久久| 亚洲无码不卡视频| 五月丁香在线视频| 在线观看中文字幕亚洲| 日韩人妻av| 丁香五月av| 91精品国际| 免费成人视频| 成人做爰A片AAA毛真人| 国产精品51麻豆cm传媒| 日B视频在线观看| 白浆av| 男人天堂无码av| 人妻av无码| 久久国产av| 3D精品啪啪一区二区免费| 在线观看视频亚洲| 在线观看日本vs欧洲vs美洲 | 午夜蜜桃人妻一区二区| 国产精品成人电影| 久久福利电影| www一级片| 91一区二区| 操BBB操BBB| 2025AV天堂| 久草社区在线| www.豆花福利视频| 在线看v| 欧美日本一区二区三区| 伊人网av| 成人性生活免费视频| 69日逼| 国产三级小视频| 精品视频在线播放| 亚洲videos| jk在线观看| av福利电影在线| 亚洲成人在线观看视频|