黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

Spring Boot如何通過java -jar啟動

瀏覽:123日期:2022-08-12 08:28:01
目錄Pre引導新建工程 打包 啟動java -jar 干啥的打包插件spring-boot-maven-plugin簡介包結構Archive的概念JarFileJarLauncher工作流程小結Pre

大家開發的基于Spring Boot 的應用 ,jar形式, 發布的時候,絕大部分都是使用java -jar 啟動。 得益于Spring Boot 的封裝 , 再也不用操心搭建tomcat等相關web容器le , 一切變得非常美好, 那SpringBoot是怎么做到的呢?

Spring Boot如何通過java -jar啟動

引導新建工程 打包 啟動

我們新創建一個Spring Boot的工程

Spring Boot如何通過java -jar啟動

其中打包的配置為

<build><plugins> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin></plugins> </build>

先打包一下

Spring Boot如何通過java -jar啟動

查看target目錄

Spring Boot如何通過java -jar啟動

然后啟動

Spring Boot如何通過java -jar啟動

Spring Boot如何通過java -jar啟動

java -jar 干啥的

我們先看看 java -jar 干了啥 ?

在oracle官網找到了該命令的描述:

If the -jar option is specified, its argument is the name of the JAR file containing class and resource files for the application. The startup class must be indicated by the Main-Class manifest header in its source code.

使用-jar參數時,后面的參數是的jar 【spring-0.0.1-SNAPSHOT.jar】,該jar文件中包含的是class和資源文件; 在manifest文件中有Main-Class的定義;Main-Class的源碼中指定了整個應用的啟動類;

簡單來說: java -jar會去找jar中的manifest文件,去找到Main-Class對應的真正的啟動類;

那看看去吧

Spring Boot如何通過java -jar啟動

咦 ,這個Main-Class 是Spring Boot 的。

我們還看到有個Start Class

Spring Boot如何通過java -jar啟動

官方文檔中,只提到過Main-Class ,并沒有提到Start-Class;Start-Class的值是com.artisan.spring.Application,這是我們的java代碼中的唯一類,包含main方法, 是能夠真正的應用啟動類

Spring Boot如何通過java -jar啟動

所以問題就來了:理論上看,執行java -jar命令時JarLauncher類會被執行,但實際上是com.artisan.spring.Application被執行了,這其中發生了什么呢?why?

Spring Boot如何通過java -jar啟動

打包插件

事實上,Java沒有提供任何標準的方式來加載嵌套的jar文件 (jar中包含jar ,即Spring Boot 中的fat jar)

Spring Boot 默認的打包插件如下:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

執行maven clean package之后,會生成兩個文件,剛才我們也看到了

Spring Boot如何通過java -jar啟動

spring-boot-maven-plugin簡介

spring-boot-maven-plugin項目存在于spring-boot-tools目錄中。

spring-boot-maven-plugin默認有5個goals:repackage、run、start、stop、build-info。在打包的時候默認使用的是repackage。

spring-boot-maven-plugin的repackage能夠將mvn package生成的軟件包,再次打包為可執行的軟件包,并將mvn package生成的軟件包重命名為.original*

spring-boot-maven-plugin的repackage在代碼層面調用了RepackageMojo的execute方法,而在該方法中又調用了repackage方法。

private void repackage() throws MojoExecutionException { // maven生成的jar,最終的命名將加上.original后綴 Artifact source = getSourceArtifact(); // 最終為可執行jar,即fat jar File target = getTargetFile(); // 獲取重新打包器,將maven生成的jar重新打包成可執行jar Repackager repackager = getRepackager(source.getFile()); // 查找并過濾項目運行時依賴的jar Set<Artifact> artifacts = filterDependencies(this.project.getArtifacts(), getFilters(getAdditionalFilters())); // 將artifacts轉換成libraries Libraries libraries = new ArtifactsLibraries(artifacts, this.requiresUnpack, getLog()); try { // 獲得Spring Boot啟動腳本 LaunchScript launchScript = getLaunchScript(); // 執行重新打包,生成fat jar repackager.repackage(target, libraries, launchScript); }catch (IOException ex) { throw new MojoExecutionException(ex.getMessage(), ex); } // 將maven生成的jar更新成.original文件 updateArtifact(source, target, repackager.getBackupFile());}

執行以上命令之后,便生成了打包結果對應的兩個文件。

Spring Boot如何通過java -jar啟動

包結構

下面針對文件的內容和結構進行一探究竟。

spring-0.0.1-SNAPSHOT.jar├── META-INF│ └── maven(主要是pom文件)│ └── MANIFEST.MF├── BOOT-INF│ ├── classes│ │ └── 應用程序類│ └── lib│ └── 第三方依賴jar└── org └── springframework└── boot └── loader└── springboot啟動程序

META-INF內容

Manifest-Version: 1.0Spring-Boot-Classpath-Index: BOOT-INF/classpath.idxImplementation-Title: springImplementation-Version: 0.0.1-SNAPSHOTSpring-Boot-Layers-Index: BOOT-INF/layers.idxStart-Class: com.artisan.spring.ApplicationSpring-Boot-Classes: BOOT-INF/classes/Spring-Boot-Lib: BOOT-INF/lib/Build-Jdk-Spec: 1.8Spring-Boot-Version: 2.4.1Created-By: Maven Jar Plugin 3.2.0Main-Class: org.springframework.boot.loader.JarLauncher Main-Class:org.springframework.boot.loader.JarLauncher ,這個是jar啟動的Main函數Start-Class: com.artisan.spring.Application,這個是我們應用自己的Main函數Archive的概念

在繼續了解底層概念和原理之前,我們先來了解一下Archive的概念:

archive即歸檔文件,這個概念在linux下比較常見 通常就是一個tar/zip格式的壓縮包 jar是zip格式

SpringBoot抽象了Archive的概念,一個Archive可以是jar(JarFileArchive),可以是一個文件目錄(ExplodedArchive),可以抽象為統一訪問資源的邏輯層

關于Spring Boot中Archive的源碼如下:

public interface Archive extends Iterable<Archive.Entry> { // 獲取該歸檔的url URL getUrl() throws MalformedURLException; // 獲取jar!/META-INF/MANIFEST.MF或[ArchiveDir]/META-INF/MANIFEST.MF Manifest getManifest() throws IOException; // 獲取jar!/BOOT-INF/lib/*.jar或[ArchiveDir]/BOOT-INF/lib/*.jar List<Archive> getNestedArchives(EntryFilter filter) throws IOException;}

SpringBoot定義了一個接口用于描述資源,也就是org.springframework.boot.loader.archive.Archive

Spring Boot如何通過java -jar啟動

該接口有兩個實現,分別是

org.springframework.boot.loader.archive.ExplodedArchive org.springframework.boot.loader.archive.JarFileArchive

前者用于在文件夾目錄下尋找資源,后者用于在jar包環境下尋找資源。而在SpringBoot打包的fatJar中,則是使用后者JarFileArchive

JarFile

JarFile:對jar包的封裝,每個JarFileArchive都會對應一個JarFile。

JarFile被構造的時候會解析內部結構,去獲取jar包里的各個文件或文件夾,這些文件或文件夾會被封裝到Entry中,也存儲在JarFileArchive中。如果Entry是個jar,會解析成JarFileArchive。

比如一個JarFileArchive對應的URL為:

jar:file:/Users/format/Develop/gitrepository/springboot-analysis/springboot-executable-jar/target/executable-jar-1.0-SNAPSHOT.jar!/

它對應的JarFile為:

/Users/format/Develop/gitrepository/springboot-analysis/springboot-executable-jar/target/executable-jar-1.0-SNAPSHOT.jar

這個JarFile有很多Entry,比如:

META-INF/META-INF/MANIFEST.MFspring/spring/study/....spring/study/executablejar/ExecutableJarApplication.classlib/spring-boot-starter-1.3.5.RELEASE.jarlib/spring-boot-1.3.5.RELEASE.jar...

JarFileArchive內部的一些依賴jar對應的URL(SpringBoot使用org.springframework.boot.loader.jar.Handler處理器來處理這些URL):

jar:file:/Users/Format/Develop/gitrepository/springboot-analysis/springboot-executable-jar/target/executable-jar-1.0-SNAPSHOT.jar!/lib/spring-boot-starter-web-1.3.5.RELEASE.jar!/

jar:file:/Users/Format/Develop/gitrepository/springboot-analysis/springboot-executable-jar/target/executable-jar-1.0-SNAPSHOT.jar!/lib/spring-boot-loader-1.3.5.RELEASE.jar!/org/springframework/boot/loader/JarLauncher.class

我們看到如果有jar包中包含jar,或者jar包中包含jar包里面的class文件,那么會使用 !/ 分隔開,這種方式只有org.springframework.boot.loader.jar.Handler能處理,它是SpringBoot內部擴展出來的一種URL協議。

Spring Boot如何通過java -jar啟動

JarLauncher工作流程

從MANIFEST.MF可以看到Main函數是JarLauncher,下面來分析它的工作流程。JarLauncher類的繼承結構是:

class JarLauncher extends ExecutableArchiveLauncherclass ExecutableArchiveLauncher extends Launcher

Launcher for JAR based archives. This launcher assumes that dependency jars are included inside a /BOOT-INF/lib directory and that application classes are included inside a /BOOT-INF/classes directory.

什么意思呢?

按照定義,JarLauncher可以加載內部/BOOT-INF/lib下的jar及/BOOT-INF/classes下的應用class。

public class JarLauncher extends ExecutableArchiveLauncher { public JarLauncher() {} public static void main(String[] args) throws Exception {new JarLauncher().launch(args); }}

其主入口新建了JarLauncher并調用父類Launcher中的launch方法啟動程序。在創建JarLauncher時,父類ExecutableArchiveLauncher找到自己所在的jar,并創建archive。

JarLauncher繼承于org.springframework.boot.loader.ExecutableArchiveLauncher。該類的無參構造方法最主要的功能就是構建了當前main方法所在的FatJar的JarFileArchive對象。

下面來看launch方法。該方法主要是做了2個事情:

(1)以FatJar為file作為入參,構造JarFileArchive對象。獲取其中所有的資源目標,取得其Url,將這些URL作為參數,構建了一個URLClassLoader

(2)以第一步構建的ClassLoader加載MANIFEST.MF文件中Start-Class指向的業務類,并且執行靜態方法main。進而啟動整個程序。

public abstract class ExecutableArchiveLauncher extends Launcher { private final Archive archive; public ExecutableArchiveLauncher() {try { // 找到自己所在的jar,并創建Archive this.archive = createArchive();}catch (Exception ex) { throw new IllegalStateException(ex);} }} public abstract class Launcher { protected final Archive createArchive() throws Exception {ProtectionDomain protectionDomain = getClass().getProtectionDomain();CodeSource codeSource = protectionDomain.getCodeSource();URI location = (codeSource == null ? null : codeSource.getLocation().toURI());String path = (location == null ? null : location.getSchemeSpecificPart());if (path == null) { throw new IllegalStateException('Unable to determine code source archive');}File root = new File(path);if (!root.exists()) { throw new IllegalStateException( 'Unable to determine code source archive from ' + root);}return (root.isDirectory() ? new ExplodedArchive(root): new JarFileArchive(root)); }}

在Launcher的launch方法中,通過以上archive的getNestedArchives方法找到/BOOT-INF/lib下所有jar及/BOOT-INF/classes目錄所對應的archive,通過這些archives的url生成LaunchedURLClassLoader,并將其設置為線程上下文類加載器,啟動應用。

至此,才執行我們應用程序主入口類的main方法,所有應用程序類文件均可通過/BOOT-INF/classes加載,所有依賴的第三方jar均可通過/BOOT-INF/lib加載。

Spring Boot如何通過java -jar啟動

小結 JarLauncher通過加載BOOT-INF/classes目錄及BOOT-INF/lib目錄下jar文件,實現了fat jar的啟動。 SpringBoot通過擴展JarFile、JarURLConnection及URLStreamHandler,實現了jar in jar中資源的加載。 SpringBoot通過擴展URLClassLoader?LauncherURLClassLoader,實現了jar in jar中class文件的加載。 WarLauncher通過加載WEB-INF/classes目錄及WEB-INF/lib和WEB-INF/lib-provided目錄下的jar文件,實現了war文件的直接啟動及web容器中的啟動。

通過spring-boot-plugin 生成了MANIFEST.MF , main-class 指定運行java -jar的主程序把依賴的jar文件 打包在fat jar.

到此這篇關于Spring Boot如何通過java -jar啟動的文章就介紹到這了,更多相關SpringBoot java -jar啟動內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 天堂精品久久 | avhd101在线成人播放 | 日韩在线二区 | 国产–第1页–屁屁影院 | 99xav| 欧美mv日韩mv国产网站app | 中文字幕第2页 | 日韩一级性生活片 | 东京热一本无码av | 日本天堂在线播放 | 影音先锋日韩精品 | 很很射影院| 91亚洲一区二区 | 午夜熟女毛片蜜桃传媒 | 国内精品美女a∨在线播放 精品人妻一区二区三区浪潮在线 | 欧美视频免费看欧美视频 | 国产精品无码久久综合网 | 黄色免费毛片 | 亚洲性综合 | 四虎国产精品成人免费4hu | 国产日韩欧美亚洲 | 97精品久久久午夜一区二区三区 | 亚洲精选中文字幕 | 中文字幕第12页 | 91久久久久久波多野高潮 | 盗摄中年夫妇啪啪免费观看 | 97久久香蕉国产线看观看 | 师尊双性精跪趴灌满h视频 湿女导航福利av导航 | 好色综合 | 五月婷婷综合在线观看 | 久久免费手机视频 | 丰满岳乱妇一区二区 | 日本亚洲欧洲无免费码在线 | av资源网在线观看 | 性视频一区二区三区 | 精品三级av无码一区 | 欧美日韩亚洲国产精品 | 黄色国产精品视频 | 人人妻久久人人澡人人爽人人精品 | 国人精品视频在线观看 | 国产成人精品一区二区在线小狼 | 精品久久久久久无码免费 | 日韩中文字幕亚洲欧美 | 成人免费版欧美州 | 一级国产片 | 川上优av一区二区线观看 | 特级西西人体444www高清大胆 | 国产日产精品久久久久快鸭 | 久草av在线播放 | 少妇高潮喷水在线观看 | 国产精品成人3p一区二区三区 | 青草青在线 | 海量av | 国产免费麻豆 | 久久久久国产a免费观看rela | 国产亚洲精品久久777777 | 国产精品成人观看视频国产奇米 | 越南处破女av免费 | 久久久久高潮综合影院 | 国产精品入口66mio男同 | 女人一级一片30分 | 东北农村老女人乱淫视频毛片 | 综合精品视频 | 永久免费看啪啪的网站 | 免费萌白酱国产一区二区三区 | 日韩大尺度视频 | 日本曰又深又爽免费视频 | 国产精品久久久久77777按摩 | 青青草十七色 | 亚洲成a人片77777精品 | 美女隐私黄www网站免 | 亚洲精品国产一区二区精华液 | 中国女人和老外的毛片 | 狠狠色噜噜狠狠狠狠色综合久av | 国产va在线观看 | 亚洲一区二区久久 | 中文字幕在线导航 | 国产做受入口竹菊 | 成码无人av片在线观看网站 | 日日躁狠狠躁夜夜躁av中文字幕 | 国产精品成人va在线观看 | 日本五月天婷久久网站 | 国产视频高清 | 韩国av免费在线 | 国产天堂av | 亚洲欧美日韩国产成人 | 日韩不卡视频在线观看 | 成人禁片又硬又粗太爽了 | 久久久久久国产精品亚洲78 | 东方影院av久久久久久 | 麻豆av一区二区三区久久 | 欧洲精品一卡2卡三卡4卡影视 | 日韩一区二区三区精品视频 | 无码av中文字幕久久专区 | 成人福利在线播放 | 亚洲国产精品成人久久 | 撕开奶罩揉吮奶头高潮av | 日产mv免费观看 | 国产人成免费爽爽爽视频 | 色婷婷久久久亚洲一区二区三区 | 日韩av午夜在线 | 中文字日产幕乱码免费 | 欧美一级做a爰片久久高潮 欧美一级做a爰片免费视频 | 欧美日韩综合一区二区三区 | 秋霞国产午夜精品免费视频 | 婷婷精品国产一区二区三区日韩 | 性一交一刮一伦96a 性一交一乱一伧老太 | 女人18毛片九区毛片在线 | 99综合网| 免费高清a级南片在线观看 免费高清成人 | 精美欧美一区二区三区 | 国产精品久久久久久久久久久痴汉 | 免费高清a级南片在线观看 免费高清成人 | 热久久精| mm131美女视频| 中文字幕免费高清在线观看 | 无码帝国www无码专区色综合 | 国产三级精品三级男人的天堂 | 午夜视频在线观看一区二区 | 神马午夜我不卡 | 免费一级做a爰片久久毛片潮喷 | 8x拔播拔播x8国产精品 | 日韩一级欧美 | 乱肉妇精品av | 国产精品黑色丝袜久久 | 91成人精品一区在线播放 | 变态 另类 国产 亚洲 | av丁香| 麻花传媒在线观看免费 | 国内精品视频一区二区三区 | 三级黄毛片 | 国产精品一级视频 | 国产精品国产成人国产三级 | 少妇激情视频 | 羞羞国产一区二区三区四区 | 四虎国产精品成人永久免费影视 | 瘾攵女强h文1v1 | 国产亚洲精品久久久久久国模美 | 亚洲一区二区观看播放 | 日韩理论在线观看 | 一级做a视频在线观看 | 色五月五月丁香亚洲综合网 | 亚洲最大av资源站无码av网址 | 日本特黄特黄刺激大片 | 一级片在线免费播放 | 国产aⅴ爽av久久久久久久 | 男人女人做爽爽18禁网站 | 伊人网视频在线 | 手机在线精品视频 | 五月综合激情 | 色香蕉在线视频 | 国产精品资源网 | 无毒的av网站 | 国产精品密蕾丝袜 | 人人草在线视频 | av毛片久久 | 妖精视频一区二区 | 黑人巨茎大战白人美女 | 欧美xxxx做受性欧美88 | 天天舔天天干 | 热re99久久精品国99热线看 | 国产日韩中文 | 欧美三日本三级三级在线播放 | 九九热在线视频免费观看 | 亚洲熟女乱综合一区二区 | 97影视| 闺蜜张开腿让我爽了一夜 | 欧美三区在线 | 又色又爽又黄18网站 | 精品女同一区二区三区 | 国产又粗又深又猛又爽又在线观看 | 黑巨茎大战欧美白妞 | 多p混交群体交乱小说 | 国产a久久 | 国产精品一区二区三区视频免费 | 精品国产av 无码一区二区三区 | 国产成人精品2021 | 久久涩涩 | 欧洲熟妇色xxxx欧美老妇软件 | www成人| 精品无码久久久久久国产 | 久久久久国产精品嫩草影院 | 一本色综合 | 懂色av中文字幕一区二区三区 | 99热这里只有精品8 99热这里只有精品在线观看 | 亚洲va一区二区 | 欧美一级录像 | 少妇粉嫩小泬喷水视频 | 久久嫩草 | 国产无吗一区二区三区在线欢 | 国产日产精品久久久久快鸭 | 精品人妻伦一二三区久久 | 一区二区三区日本久久九 | 97日本xxxxxxxxx18 97日韩精品 | 亚洲春色在线视频 | 深夜福利小视频在线观看 | 亚洲综合欧美在线一区在线播放 | 伊人激情综合 | 欧美性插视频 | 欧美亚洲一区二区三区四区 | 成人无码一区二区三区网站 | 国产做a爱免费视频在线观看 | 女人黄色片 | 国产亲子乱弄免费视频 | 亚洲欧美一区二区三区在线 | 国产三级做爰在线播放 | 日本xxxx18 | 中文日韩v日本国产 | 国产无套护士在线观看 | 欧美久久精品 | 羞羞的视频网站 | 又粗又爽又猛高潮的在线视频 | 欧美日韩久久久久 | 亚洲欧美丝袜精品久久 | 久久99国产综合精品 | 少妇激情四射 | 黄色免费网站观看 | 一级做a爱视频 | 饥渴丰满的少妇喷潮 | 一个色综合亚洲色综合 | 成人免费短视频 | 99在线观看视频 | 亚洲天码中字一区 | 国产激情二区 | 99国内精品久久久久久久 | 91久久国产精品视频 | 在线成人福利 | 精品久久中文 | 欧美丰满大乳大屁股毛片图片 | 精品国产传媒 | 激情久久网| 国产偷窥自拍视频 | 国产一区不卡 | 国产系列在线观看 | 奇米影视欧美 | 久久久香蕉网 | 欧美私人情侣网站 | 天天色天天搞 | 午夜免费福利视频 | 在线成人观看 | 国产一级免费av | 青青草免费视频在线播放 | 国产精品久久久久久亚洲影视 | 国产精品老女人 | 亚洲成年人av | 老女人人体欣赏a√s | 玖玖在线精品 | 小罗莉极品一线天在线 | 国产精视频 | 中文乱码字慕人妻熟女人妻 | 久久久久成人精品无码中文字幕 | 麻豆视频在线观看免费网站 | 毛片网在线 | 美女视频黄频a美女大全 | 色婷婷久久一区二区三区麻豆 | 免费超爽大片黄 | 欧美影院在线观看 | 精品国产乱码久久久久久郑州公司 | 一本色道久久88亚洲精品综合 | 中文字幕+乱码+中文字幕无忧 | 亚洲乱码日产精品bd在线看 | 欧美激情视频一区二区三区免费 | 亚洲福利午夜 | a爱视频| 国产小视频在线看 | 日本不卡高字幕在线2019 | 成人免费无遮挡做性视频 | 哪里可以看毛片 | 日本性高潮视频 | 国产线播放免费人成视频播放 | 国产一区免费在线观看 | 中文字幕美人妻亅u乚一596 | 大胸奶汁乳流奶水出来h | 亚洲精品欧美一区二区三区 | 欧美一区二区三区性视频 | 性做久久久| 图片区小说区激情区偷拍区 | 亚洲伊人久久综合 | 色人阁网站 | 国产免费一级 | 欧洲做受高潮免费看 | 日日爱网站 | 欧美中文网 | 亚洲v | 国产精品久久久久一区二区国产 | 亚洲国产精品ⅴa在线观看 天堂中文在线资源 | 91伊人网 | 一级做人爰片全过 | 亚洲午夜久久久久久久久久久 | 美女裸体自慰在线观看 | 欧美一区二区三区爱爱 | 日韩特黄一级片 | 国产精品偷伦视频免费观看了 | 国产精品www老牛影视 | 香蕉久久人人爽人人爽人人片av | 色视频免费在线观看 | 最新最近中文字幕 | 一级精品视频 | ktv疯狂做爰视频 | 亚洲人成无码网站18禁10 | 国内精品伊人久久久久网站 | 性猛交ⅹxxx富婆视频 | 韩国三级中文字幕hd浴缸戏 | 国产精品成人久久电影 | 欧美jizzhd精品欧美巨大免费 | av无码电影一区二区三区 | 日本变态折磨凌虐bdsm在线 | 少妇被爽到高潮动态图 | 麻豆成人网 | 无码一区二区三区在线观看 | 国产精品8 | 国产av一区二区三区最新精品 | 国产精品国产三级国快看 | 欧美日韩伊人 | 狠狠色 综合色区 | 国产操操操 | 一级做a爰片性色毛片视频停止 | 日本免费高清视频 | 日本色片网站 | 免费超爽视频在线观看 | 中文字幕精品久久久久人妻红杏ⅰ | 手机在线看片国产 | 男生美女隐私黄www 男生女生羞羞网站 | 久久中文网 | 韩日在线 | 国产一级黄色片子 | 中文字幕日产每天更新40 | 脱岳裙子从后面挺进去在线观看 | 99热免费在线 | 爱情岛论坛线路一区二区 | av免费资源| 人妻在卧室被老板疯狂进入 | 国产嫩草影视 | 午夜性视频国产牛牛视频 | 人善交另类亚洲重口另类 | 日本视频精品 | 国产成人综合一区二区三区 | www.猫咪av| 懂色av粉嫩av色老板 | 天天看片中文字幕 | 国产精品wwwdhxxx| 那里可以看毛片 | 妹子色综合 | 日韩视频精品一区 | 欧美色图亚洲自拍 | 白嫩少妇各种bbwbbw | 熟妇人妻不卡中文字幕 | a中文字幕解说在线 | 波多野结衣一区二区三区av免费 | 人妻系列无码专区久久五月天 | 我要看黄色毛片 | 黄色片视频免费观看 | 日韩av无码一区二区三区 | 可以免费看的毛片 | 亚洲 精品 主播 自拍 | 精品无码日韩国产不卡av | 成人六区 | 国产欧美一区二区精品性色超碰 | 北条麻妃在线一区二区韩世雅 | 国产精品久久久久久久久久新婚 | 国产成人免费9x9x | 欧美经典一区 | 久久久久99人妻一区二区三区 | 久久99精品久久久久久秒播 | 人人看人人舔 | 天天看天天干 | 最近中文在线观看 | 免费一区二区视频 | 森泽佳奈av | 免费asmr色诱娇喘呻吟外国 | 女人高潮流白浆视频 | 婷婷激情五月综合 | 成人看片在线观看 | 丰满人妻精品国产99aⅴ | 小泽玛利亚一区二区在线观看 | 加勒比中文字幕无码一区 | 青青青国内视频在线观看软件 | 国产乱码精品一区二区蜜臀 | 国产精品ssss在线亚洲 | 欧美熟妇毛茸茸 | 亚洲人成网站免费播放 | 在线视频一区二区 | 99久久精品国产一区二区蜜芽 | 在线看色网站 | 成人韩免费网站 | 中文字幕丰满人伦在线 | 丰满少妇在线观看资源站 | 亚洲成人中文字幕在线 | 性欧美xxx69hd高清 | 亚洲最大福利网 | 日本少妇激三级做爰 | 国产日韩欧美不卡 | 本道综合精品 | 日韩欧美中文字幕在线视频 | 999黄色片| 丰满少妇作爱视频免费观看 | 欧美14sex性hd摘花 | 91亚色视频 | 色哟哟免费 | 一本一本久久aa综合精品 | 国产 日韩 欧美 中文 在线播放 | 色婷婷婷| 成人疯狂猛交xxx | 日本少妇毛茸茸 | 波多野结衣视频播放 | 亚洲成人av网址 | 国产成人av免费观看 | 久久精品国产精品亚洲38 | 亚洲国产精品网站 | 欧美老熟妇xb水多毛多 | 自拍偷拍亚洲 | 韩日少妇 | 国产精品黄色av | 日韩国产传媒 | 99久久精品费精品国产一区二区 | www91插插插| 中文字幕不卡在线88 | 欧美三级网址 | 国语播放老妇呻吟对白 | 男女性杂交内射女bbwxz | 天天夜碰日日摸日日澡性色av | 欧美成a人片在线观看久 | 亚洲午夜成人片 | 动漫女女吸乳舌吻羞羞 | 最近免费中文字幕mv在线视频3 | 精品精品欲天堂导航 | 性欧美videos另类极品小说 | 日本白嫩少妇hdtube | 日韩欧美操 | 日本三级欧美三级人妇视频黑白配 | 美女又爽又黄 | 中文字幕日韩精品无码内射 | 另类小说五月天 | 亚洲午夜一区二区 | 麻豆av网站 | xxx国产| 亚洲天堂av在线播放 | 亚州一二区 | 国产美女又黄又爽又色视频免费 | 久久婷婷五月综合色中文字幕 | 嘿嘿射在线观看 | 一级黄色片网站 | 爱爱激情免费视频 | 男女国产视频 | 亚色视频在线观看 | 精品国产欧美一区二区三区成人 | 国产中文欧美日韩在线 | 69xxx18—19xxx视频 | 本色视频aaaaaa一级网站 | 亚洲精品无码久久久影院相关影片 | 久久久国产成人一区二区三区 | 国产精品久久久久久麻豆一区 | 一级性感毛片 | 久久久久久久国产精品 | 综合久久久久久 | 天天操人人射 | 亚洲熟妇无码一区二区三区导航 | 日日爱夜夜操 | 国产免费不卡 | 亚洲精品激情视频 | 午夜少妇拍拍视频在线观看 | 欧美黄网址 | 欧美激情自拍 | 91精品国产日韩一区二区三区 | 国产高清不卡无码视频 | 红杏出墙记 | 亚洲精品在线免费播放 | 人人妻人人妻人人片av | 亚洲免费中文字幕 | 少妇视频一区二区三区 | 日韩欧美第一页 | 日本人xxxxxxxxx泡妞 | 国产精品嫩草在线 | 欧美日韩中文字幕 | 亚洲专区在线视频 | 黄色中文字幕在线观看 | 天堂资源中文 | 男人j进入女人j内部免费网站 | 国产精品av一区二区 | 婷婷丁香国产 | 国产福利久久 | 国产精品区二区三区日本 | 日韩精品一区二区三区中文无码 | 他也色在线 | 国产精品成人免费 | 亚欧在线免费观看 | 麻豆国产av超爽剧情系列 | 久久久人成影片一区二区三区 | 好吊色欧美一区二区三区视频 | 日韩午夜精品 | 极品尤物av | www.xxx.日本| 久久人人爽人人爽人人片av高请 | 91美女片黄在线观看成欢阁 | 懂色av一区二区三区四区五区 | 性殴美69xoxoxoxo | 观看av在线 | 国产伦精品一区二区三区免费迷 | 国产区二区 | 国产v综合v亚洲欧美久久 | 淫久久| 蜜桃一区二区三区 | 日韩v91综合区 | porn麻豆 | 日韩女优中文字幕 | 欧美视频一二区 | 久久久久免费 | 波多野结衣中文一区 | 97涩国一产精品久久久久久久 | 爆操日本美女 | 国产人妻aⅴ色偷 | 欧美大尺度做爰啪啪床戏明星 | 国产毛片精品 | 久久亚洲精品国产一区 | 手机在线免费毛片 | 国产精品久久久久久影视 | 国产边摸边吃奶边做爽视频 | 中文字幕在线视频网站 | 毛片色毛片18毛片美女 | 女人18毛片九区毛片在线 | 毛片小视频 | 国产色视频 | 再深点灬舒服灬太大了网站 | 99久久婷婷国产综合精品免费 | 成年人视频免费在线观看 | 少妇裸体淫交免费视频网站 | 涩涩视频网站 | 午夜影院色 | 午夜啪啪网站 | 美女毛片一区二区三区四区 | 亚洲精品av中文字幕在线 | 久久久蜜桃 | 亚洲成年人影院 | 成人精品视频一区二区三区尤物 | 小向美奈子在线观看 | 久青草国产在视频在线观看 | 亚洲欧美日韩中文高清www777 | 我要色综合天天 | 亚洲1区在线观看 | www.com操| 国产乱人无码伦av在线a | 911久久香蕉国产线看观看 | 久久99精品久久久久久久青青日本 | 99网站| 99久久精品免费看国产免费粉嫩 | 岛国av免费在线观看 | 人人av在线 | 国产亚洲小视频 | 东方成人av| 老妇肥熟凸凹丰满刺激 | 老牛精品亚洲成av人片 | 国产精品麻豆欧美日韩ww | 草草视频在线播放 | 三上悠亚人妻中文字幕在线 | 亚洲伊人久久综合影院 | 国产黄在线观看免费观看不卡 | 日韩精品一区二区三区免费视频观看 | 国产午夜亚洲精品午夜鲁丝片 | 日本公妇乱淫免费视频一区三区 | 天堂中文av在线 | 久久久久久在线观看 | 国产精品理论片在线观看 | 日韩一区二区三区在线视频 | 免费观看黄色片网站 | 中国亚洲女人69内射少妇 | 久草久热 | 国产女主播在线 | 国产成人精品亚洲7777 | 国产98色在线 | 国 | 免费无码午夜福利片69 | 亚洲午夜精品久久久久久 | 亚洲一区二区在线免费 | 丰满岳妇伦在线播放 | 水蜜桃色314在线观看 | 亚洲熟女乱综合一区二区 | 成人做爰69片免费 | 深夜视频在线观看 | 毛片黄色一级 | 亚洲色www永久网站 少妇人妻综合久久中文字幕 | 激情久久一区二区三区 | 波多野结衣a级片 | 欧美一级片毛片 | 成年人小视频在线观看 | 日本免费一区二区三区最新vr | 精品国产免费第一区二区三区 | 国产精品久久久久久福利 | 91视频高清| 五月婷婷六月天 | 五月色综合| 一本久道久久综合婷婷五月 | 在线观看黄色网页 | 午夜激情网址 | 色播久久 | 久久久久久亚洲精品中文字幕 | 国产精品9999久久久久 | 欧美日韩精品人妻狠狠躁免费视频 | 小箩莉末发育娇小性色xxxx | 456亚洲视频 | 蜜臀91精品国产免费观看 | 老湿福利影院 | 黄色毛片a级 | 日韩手机视频 | 国产交换配乱淫视频a | 亚洲调教欧美在线 | 久久国产成人午夜av影院 | av免费在线网站 | 黑人巨大av | 人妻熟女一区二区三区app下载 | 一个色综合久久 | 久久桃色 | 狠狠色噜噜狠狠狠狠av不卡 | 日韩av无码社区一区二区三区 | 中国a级大片 | 亚洲成人av高清 | 新久小草在线 |