日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

.jar中没有主清单属性_为什么 Spring Boot 的 jar 可以直接运行?

發布時間:2025/4/5 javascript 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .jar中没有主清单属性_为什么 Spring Boot 的 jar 可以直接运行? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源:Gormat's Notes

fangjian0423.github.io/2017/05/31/springboot-executable-jar/

  • Spring Boot Loader抽象的一些類
  • JarLauncher的執行過程
  • 關于自定義的類加載器LaunchedURLClassLoader
  • Spring Boot Loader的作用

SpringBoot提供了一個插件spring-boot-maven-plugin用于把程序打包成一個可執行的jar包。在pom文件里加入這個插件即可:

<build>
????<plugins>
????????<plugin>
????????????<groupId>org.springframework.bootgroupId>
????????????<artifactId>spring-boot-maven-pluginartifactId>
????????plugin>
????plugins>
build>

打包完生成的executable-jar-1.0-SNAPSHOT.jar內部的結構如下:

├── META-INF
│ ├── MANIFEST.MF
│ └── maven
│ └── spring.study
│ └── executable-jar
│ ├── pom.properties
│ └── pom.xml
├── lib
│ ├── aopalliance-1.0.jar
│ ├── classmate-1.1.0.jar
│ ├── spring-boot-1.3.5.RELEASE.jar
│ ├── spring-boot-autoconfigure-1.3.5.RELEASE.jar
│ ├── ...
├── org
│ └── springframework
│ └── boot
│ └── loader
│ ├── ExecutableArchiveLauncher$1.class
│ ├── ...
└── spring
└── study
└── executablejar
└── ExecutableJarApplication.class

然后可以直接執行jar包就能啟動程序了:

java -jar executable-jar-1.0-SNAPSHOT.jar

打包出來fat jar內部有4種文件類型:

  • META-INF文件夾:程序入口,其中MANIFEST.MF用于描述jar包的信息
  • lib目錄:放置第三方依賴的jar包,比如springboot的一些jar包
  • spring boot loader相關的代碼
  • 模塊自身的代碼
  • MANIFEST.MF文件的內容:

    Manifest-Version: 1.0
    Implementation-Title: executable-jar
    Implementation-Version: 1.0-SNAPSHOT
    Archiver-Version: Plexus Archiver
    Built-By: Format
    Start-Class: spring.study.executablejar.ExecutableJarApplication
    Implementation-Vendor-Id: spring.study
    Spring-Boot-Version: 1.3.5.RELEASE
    Created-By: Apache Maven 3.2.3
    Build-Jdk: 1.8.0_20
    Implementation-Vendor: Pivotal Software, Inc.
    Main-Class: org.springframework.boot.loader.JarLauncher

    我們看到,它的Main-Class是org.springframework.boot.loader.JarLauncher,當我們使用java -jar執行jar包的時候會調用JarLauncher的main方法,而不是我們編寫的SpringApplication。

    那么JarLauncher這個類是的作用是什么的?

    它是SpringBoot內部提供的工具Spring Boot Loader提供的一個用于執行Application類的工具類(fat jar內部有spring loader相關的代碼就是因為這里用到了)。相當于Spring Boot Loader提供了一套標準用于執行SpringBoot打包出來的jar

    Spring Boot Loader抽象的一些類

    抽象類Launcher:各種Launcher的基礎抽象類,用于啟動應用程序;跟Archive配合使用;目前有3種實現,分別是JarLauncher、WarLauncher以及PropertiesLauncher

    Archive:歸檔文件的基礎抽象類。JarFileArchive就是jar包文件的抽象。它提供了一些方法比如getUrl會返回這個Archive對應的URL;getManifest方法會獲得Manifest數據等。ExplodedArchive是文件目錄的抽象

    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.MF
    spring/
    spring/study/
    ....
    spring/study/executablejar/ExecutableJarApplication.class
    lib/spring-boot-starter-1.3.5.RELEASE.jar
    lib/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協議。

    JarLauncher的執行過程

    JarLauncher的main方法:

    public?static?void?main(String[]?args)?{
    ????//?構造JarLauncher,然后調用它的launch方法。參數是控制臺傳遞的
    ????new?JarLauncher().launch(args);
    }

    JarLauncher被構造的時候會調用父類ExecutableArchiveLauncher的構造方法。

    ExecutableArchiveLauncher的構造方法內部會去構造Archive,這里構造了JarFileArchive。構造JarFileArchive的過程中還會構造很多東西,比如JarFile,Entry …

    JarLauncher的launch方法:

    protected?void?launch(String[]?args)?{
    ??try?{
    ????//?在系統屬性中設置注冊了自定義的URL處理器:org.springframework.boot.loader.jar.Handler。如果URL中沒有指定處理器,會去系統屬性中查詢
    ????JarFile.registerUrlProtocolHandler();
    ????//?getClassPathArchives方法在會去找lib目錄下對應的第三方依賴JarFileArchive,同時也會項目自身的JarFileArchive
    ????//?根據getClassPathArchives得到的JarFileArchive集合去創建類加載器ClassLoader。這里會構造一個LaunchedURLClassLoader類加載器,這個類加載器繼承URLClassLoader,并使用這些JarFileArchive集合的URL構造成URLClassPath
    ????//?LaunchedURLClassLoader類加載器的父類加載器是當前執行類JarLauncher的類加載器
    ????ClassLoader?classLoader?=?createClassLoader(getClassPathArchives());
    ????//?getMainClass方法會去項目自身的Archive中的Manifest中找出key為Start-Class的類
    ????//?調用重載方法launch
    ????launch(args,?getMainClass(),?classLoader);
    ??}
    ??catch?(Exception?ex)?{
    ????ex.printStackTrace();
    ????System.exit(1);
    ??}
    }

    //?Archive的getMainClass方法
    //?這里會找出spring.study.executablejar.ExecutableJarApplication這個類
    public?String?getMainClass()?throws?Exception?{
    ?Manifest?manifest?=?getManifest();
    ?String?mainClass?=?null;
    ?if?(manifest?!=?null)?{
    ??mainClass?=?manifest.getMainAttributes().getValue("Start-Class");
    ?}
    ?if?(mainClass?==?null)?{
    ??throw?new?IllegalStateException(
    ????"No?'Start-Class'?manifest?entry?specified?in?"?+?this);
    ?}
    ?return?mainClass;
    }

    //?launch重載方法
    protected?void?launch(String[]?args,?String?mainClass,?ClassLoader?classLoader)throws?Exception?{
    ??????//?創建一個MainMethodRunner,并把args和Start-Class傳遞給它
    ?Runnable?runner?=?createMainMethodRunner(mainClass,?args,?classLoader);
    ??????//?構造新線程
    ?Thread?runnerThread?=?new?Thread(runner);
    ??????//?線程設置類加載器以及名字,然后啟動
    ?runnerThread.setContextClassLoader(classLoader);
    ?runnerThread.setName(Thread.currentThread().getName());
    ?runnerThread.start();
    }

    MainMethodRunner的run方法:

    @Override
    public?void?run()?{
    ??try?{
    ????//?根據Start-Class進行實例化
    ????Class>?mainClass?=?Thread.currentThread().getContextClassLoader()
    ????????.loadClass(this.mainClassName);
    ????//?找出main方法
    ????Method?mainMethod?=?mainClass.getDeclaredMethod("main",?String[].class);
    ????//?如果main方法不存在,拋出異常
    ????if?(mainMethod?==?null)?{
    ??????throw?new?IllegalStateException(
    ??????????this.mainClassName?+?"?does?not?have?a?main?method");
    ????}
    ????//?調用
    ????mainMethod.invoke(null,?new?Object[]?{?this.args?});
    ??}
    ??catch?(Exception?ex)?{
    ????UncaughtExceptionHandler?handler?=?Thread.currentThread()
    ????????.getUncaughtExceptionHandler();
    ????if?(handler?!=?null)?{
    ??????handler.uncaughtException(Thread.currentThread(),?ex);
    ????}
    ????throw?new?RuntimeException(ex);
    ??}
    }

    Start-Class的main方法調用之后,內部會構造Spring容器,啟動內置Servlet容器等過程。這些過程我們都已經分析過了。

    關于自定義的類加載器LaunchedURLClassLoader

    LaunchedURLClassLoader重寫了loadClass方法,也就是說它修改了默認的類加載方式(先看該類是否已加載這部分不變,后面真正去加載類的規則改變了,不再是直接從父類加載器中去加載)。LaunchedURLClassLoader定義了自己的類加載規則:

    private Class> doLoadClass(String name) throws ClassNotFoundException {

    // 1) Try the root class loader
    try {
    if (this.rootClassLoader != null) {
    return this.rootClassLoader.loadClass(name);
    }
    }
    catch (Exception ex) {
    // Ignore and continue
    }

    // 2) Try to find locally
    try {
    findPackage(name);
    Class> cls = findClass(name);
    return cls;
    }
    catch (Exception ex) {
    // Ignore and continue
    }

    // 3) Use standard loading
    return super.loadClass(name, false);
    }

    加載規則:

  • 如果根類加載器存在,調用它的加載方法。這里是根類加載是ExtClassLoader
  • 調用LaunchedURLClassLoader自身的findClass方法,也就是URLClassLoader的findClass方法
  • 調用父類的loadClass方法,也就是執行默認的類加載順序(從BootstrapClassLoader開始從下往下尋找)
  • LaunchedURLClassLoader自身的findClass方法:

    protected Class> findClass(final String name)
    throws ClassNotFoundException
    {
    try {
    return AccessController.doPrivileged(
    new PrivilegedExceptionAction>() {
    public Class> run() throws ClassNotFoundException {
    // 把類名解析成路徑并加上.class后綴
    String path = name.replace('.', '/').concat(".class");
    // 基于之前得到的第三方jar包依賴以及自己的jar包得到URL數組,進行遍歷找出對應類名的資源
    // 比如path是org/springframework/boot/loader/JarLauncher.class,它在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!/中被找出
    // 那么找出的資源對應的URL為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
    Resource res = ucp.getResource(path, false);
    if (res != null) { // 找到了資源
    try {
    return defineClass(name, res);
    } catch (IOException e) {
    throw new ClassNotFoundException(name, e);
    }
    } else { // 找不到資源的話直接拋出ClassNotFoundException異常
    throw new ClassNotFoundException(name);
    }
    }
    }, acc);
    } catch (java.security.PrivilegedActionException pae) {
    throw (ClassNotFoundException) pae.getException();
    }
    }

    下面是LaunchedURLClassLoader的一個測試:

    // 注冊org.springframework.boot.loader.jar.Handler URL協議處理器
    JarFile.registerUrlProtocolHandler();
    // 構造LaunchedURLClassLoader類加載器,這里使用了2個URL,分別對應jar包中依賴包spring-boot-loader和spring-boot,使用 "!/" 分開,需要org.springframework.boot.loader.jar.Handler處理器處理
    LaunchedURLClassLoader classLoader = new LaunchedURLClassLoader(
    new URL[] {
    new URL("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!/")
    , new URL("jar:file:/Users/Format/Develop/gitrepository/springboot-analysis/springboot-executable-jar/target/executable-jar-1.0-SNAPSHOT.jar!/lib/spring-boot-1.3.5.RELEASE.jar!/")
    },
    LaunchedURLClassLoaderTest.class.getClassLoader());

    // 加載類
    // 這2個類都會在第二步本地查找中被找出(URLClassLoader的findClass方法)
    classLoader.loadClass("org.springframework.boot.loader.JarLauncher");
    classLoader.loadClass("org.springframework.boot.SpringApplication");
    // 在第三步使用默認的加載順序在ApplicationClassLoader中被找出
    classLoader.loadClass("org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration");

    Spring Boot Loader的作用

    SpringBoot在可執行jar包中定義了自己的一套規則,比如第三方依賴jar包在/lib目錄下,jar包的URL路徑使用自定義的規則并且這個規則需要使用org.springframework.boot.loader.jar.Handler處理器處理。它的Main-Class使用JarLauncher,如果是war包,使用WarLauncher執行。這些Launcher內部都會另起一個線程啟動自定義的SpringApplication類。

    這些特性通過spring-boot-maven-plugin插件打包完成。

    ——End——

    Java后端編程讀者群正式成立了!

    ? 推薦閱讀

    • 推薦七個不錯的Spring Boot+Vue開源項目
    • SpringBoot緩存開發實戰
    • SpringBoot 使用 Redis 緩存
    • 詳解Spring boot啟動原理
    • SpringBoot幾種定時任務的實現方式
    • Docker部署spring cloud項目詳細步驟
    • SpringBoot 優雅停止服務的幾種方法

    推薦另外一個程序員社區公眾號

    明天見(。・ω・。)ノ?

    總結

    以上是生活随笔為你收集整理的.jar中没有主清单属性_为什么 Spring Boot 的 jar 可以直接运行?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    最近中文字幕mv免费高清在线 | 国产黄色精品 | 91av资源网| 黄色大片免费网站 | 久久免费99精品久久久久久 | 久久久久久久久福利 | 国产精品网站一区二区三区 | 九九热av| 精品黄色片 | 免费a v观看 | 国产黄色av网站 | 成人国产网站 | 久久er99热精品一区二区 | 亚洲三级在线播放 | 久热香蕉视频 | 天天超碰 | 日韩精品视 | 欧美日视频 | 一色屋精品视频在线观看 | 国产黄免费在线观看 | 欧美精品免费在线观看 | 超薄丝袜一二三区 | 色婷婷啪啪免费在线电影观看 | 国产亚州精品视频 | 亚洲精品一区二区精华 | 国产精品永久在线 | 国产精品久久久久久一二三四五 | 婷婷色伊人 | 91麻豆产精品久久久久久 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 久久成人免费电影 | 国产黄色片网站 | 婷婷色av | 五月花丁香婷婷 | 激情动态 | 天天射网 | 久久久久久久99精品免费观看 | 国产免费久久久久 | 亚洲成免费 | 九九导航 | 色综合天天综合网国产成人网 | 7777精品伊人久久久大香线蕉 | 国产一区二三区好的 | 97超碰在线久草超碰在线观看 | 久久久99精品免费观看乱色 | 99精品久久久久 | 日p视频在线观看 | 中文字幕韩在线第一页 | 久久蜜臀一区二区三区av | 黄色小说网站在线 | 中文字幕一区av | 99久久精品国产欧美主题曲 | 狠狠狠狠狠操 | 午夜日b视频| 天天干天天看 | 狠狠色丁香婷婷综合久久片 | 国产精品一区二区av影院萌芽 | 亚洲国产网站 | 黄色影院在线免费观看 | 国内精品久久久 | 日日摸日日 | 日韩在线免费视频观看 | 天天操狠狠干 | 日韩精品久久久久久久电影99爱 | 字幕网资源站中文字幕 | 免费观看第二部31集 | 国产视频欧美视频 | 一区二区三区久久精品 | 色综合久久久久综合99 | 日韩av免费一区 | 国产高清亚洲 | 精品婷婷 | 东方av在| 日韩草比| 97成人精品 | 久草视频免费在线观看 | 久久久久久久18 | 草久在线 | 中文字幕黄色网址 | 久久久高清免费视频 | 欧美二区三区91 | 久久久久久美女 | 在线观看av黄色 | 波多野结衣综合网 | 国产精品理论在线观看 | 久久久精品 | 美女免费电影 | 91九色在线观看视频 | 亚洲春色综合另类校园电影 | 欧美日韩国产一区二区在线观看 | 美女网站视频免费都是黄 | 91麻豆精品91久久久久同性 | 天天色天天色天天色 | 最新日韩中文字幕 | 亚洲成 人精品 | 免费精品国产va自在自线 | 涩涩伊人 | 久久久久久久99精品免费观看 | 99高清视频有精品视频 | 少妇bbw搡bbbb搡bbbb | 91精品视频观看 | 狠狠干五月天 | 香蕉视频日本 | 人人爽人人 | 在线观看aa | 激情偷乱人伦小说视频在线观看 | 亚洲精选国产 | 又黄又爽又色无遮挡免费 | 韩国在线视频一区 | 久久99久国产精品黄毛片入口 | 国产原创在线 | av免费观看网站 | www亚洲视频 | 在线观看国产亚洲 | 免费在线观看a v | 五月在线 | 狠狠撸电影 | 欧美精品一区二区在线观看 | 韩国一区在线 | 人人澡人人草 | 91视频啊啊啊 | 91看片在线 | 免费色视频网站 | 久久精品视频免费播放 | h视频在线看 | 黄色在线看网站 | 中文字幕在线观看av | 日韩三级免费观看 | 91视频88av | 在线观看v片 | 久久视频免费 | 欧美色图30p | 最新一区二区三区 | 一级精品视频在线观看宜春院 | 中文字幕视频在线播放 | 高清一区二区三区av | 免费高清av在线看 | 四虎4hu永久免费 | 日韩精品一区二区免费视频 | 天天干天天拍天天操 | 91精品国产电影 | 亚洲成人黄色 | 日本韩国欧美在线观看 | 国产自在线 | 免费精品视频在线 | 国产视频久久久 | 午夜资源站| 免费看黄的 | 日韩精品免费在线观看视频 | 一区二区精品视频 | 精品国产1区2区3区 国产欧美精品在线观看 | 欧美日韩国产在线一区 | 黄色免费大片 | 国产精品免费高清 | 人人爽人人爽人人爽学生一级 | 国产精品2020 | 超级碰碰碰视频 | 99热这里有| 一区二区三区免费在线观看视频 | 99爱在线 | 天天爱天天 | 玖玖视频 | 中文字幕高清在线 | 最新99热| 五月婷婷一区 | 亚洲有 在线 | 最近日本韩国中文字幕 | 日韩一区正在播放 | 国产特级毛片aaaaaaa高清 | 久久久精品一区二区三区 | 国产精品一区在线观看你懂的 | 免费三及片 | 美女视频黄频大全免费 | 亚洲国产成人高清精品 | 久久久99精品免费观看app | a视频免费 | 在线观看激情av | 国产这里只有精品 | 日韩免费一区二区 | 六月激情网 | 五月婷社区 | 亚洲精品乱码久久久一二三 | 亚洲精品综合欧美二区变态 | 99久久精品免费看国产免费软件 | 一区二区视频在线免费观看 | 九九久久电影 | 亚洲黄色免费在线 | 国产成人精品亚洲日本在线观看 | 国产伦精品一区二区三区高清 | 欧美日韩aaaa | 99精品免费在线观看 | 中文日韩在线 | 国产精品9999久久久久仙踪林 | 免费观看黄色12片一级视频 | 亚洲aⅴ乱码精品成人区 | 欧美性生活久久 | 国产不卡av在线 | 午夜电影中文字幕 | av一级免费 | 成人午夜电影免费在线观看 | 中文字幕精品三级久久久 | 91在线视频一区 | 国产夫妻av在线 | 久久国产精品免费一区二区三区 | 国产成人精品亚洲日本在线观看 | 精品一区二区三区四区在线 | 欧美二区在线播放 | 国产精品夜夜夜一区二区三区尤 | 狠狠综合网| 亚洲精品午夜久久久 | 成年人av在线播放 | 国产裸体永久免费视频网站 | 一区二区男女 | 亚洲蜜桃av | av电影中文字幕 | 国产视频在线观看免费 | 成人黄色一级视频 | 在线激情影院一区 | 欧美 亚洲 另类 激情 另类 | 亚洲精品18日本一区app | japanesexxx乱女另类 | 成人在线免费观看视视频 | 日韩精品久久久久久久电影99爱 | 国产一级大片免费看 | 国产精品永久 | 国产又粗又猛又黄又爽 | 五月婷婷色 | 在线免费观看国产黄色 | 69国产盗摄一区二区三区五区 | 日韩精品在线免费观看 | 成人免费观看视频大全 | 天天摸日日操 | 在线观看国产一区 | 国产亚洲一区二区在线观看 | 日日碰狠狠躁久久躁综合网 | 九九九视频在线 | 色天天综合久久久久综合片 | 日韩在线首页 | av高清网站在线观看 | 狠狠久久综合 | 久草久热 | 97超碰在线久草超碰在线观看 | 丝袜av网站 | 91九色蝌蚪视频在线 | 色的网站在线观看 | 四虎永久免费网站 | 欧美一区二区伦理片 | 国产99久久久国产精品 | 又黄又刺激又爽的视频 | 久久免费视频在线观看 | 国产美女精品视频免费观看 | 国产一区二区三区免费观看视频 | 肉色欧美久久久久久久免费看 | 久久久久久亚洲精品 | 婷婷在线免费视频 | 国产精品福利在线 | 伊人影院在线观看 | 五月婷婷色 | 免费的黄色av | 91网站免费观看 | 国产精品成久久久久 | 亚洲精品视频播放 | av高清影院| 国产精品黄 | 久久你懂得| 中文字幕人成不卡一区 | 黄色综合 | 97在线观看免费高清 | 一区二区三区观看 | 一区二区三区在线观看免费 | 婷婷久久国产 | 国产精品久久影院 | 极品久久久久 | 国产精品成人自产拍在线观看 | 午夜精品一区二区三区在线观看 | 国产在线p | 天天拍天天干 | av免费福利| 丁香电影小说免费视频观看 | 国产99久久久国产精品成人免费 | 狠狠久久婷婷 | 久久免费福利视频 | 久久亚洲福利视频 | 国产资源在线免费观看 | 亚洲欧洲av在线 | 久久影视一区二区 | 国产一级片一区二区三区 | 日韩电影久久久 | 欧美日韩一区二区久久 | 午夜精品中文字幕 | 在线看小早川怜子av | 精品日韩在线一区 | 丝袜制服天堂 | 又黄又刺激的网站 | 久久电影日韩 | 99在线观看视频网站 | av一区二区三区在线播放 | 免费的黄色的网站 | av免费看在线 | 精品视频免费看 | 美女视频永久黄网站免费观看国产 | 激情五月av| 国产精品久久久久久久久搜平片 | 久久色视频 | 亚州性色 | 亚洲人成影院在线 | 免费一级毛毛片 | 最新久久免费视频 | 亚洲成人高清在线 | 日韩中文字幕免费视频 | 美女视频黄免费网站 | 超碰在线日本 | 顶级欧美色妇4khd | 成人黄大片视频在线观看 | www夜夜操 | 五月天久久久 | 国产最新视频在线 | 爱爱一区| 久av在线| www.超碰97.com | 久久久精品国产一区二区三区 | 日韩黄色在线 | 999热线在线观看 | 一区二区三区四区精品 | 亚洲艳情 | 8x成人免费视频 | 日日天天狠狠 | 黄污视频大全 | 婷婷色五 | 色婷婷福利视频 | 九九涩涩av台湾日本热热 | 国产成人免费在线 | 一级做a爱片性色毛片www | 久久伦理电影网 | 国产精品永久久久久久久www | 亚洲视频aaa | 亚洲 综合 激情 | av一级久久| 日韩在线视 | 五月天婷婷在线播放 | 日韩欧美高清免费 | 在线播放视频一区 | 午夜精品一区二区三区视频免费看 | 欧美一区日韩一区 | 国产精品入口麻豆www | av成人免费网站 | 欧美日韩视频一区二区 | 欧美最猛性xxxx | 很黄很污的视频网站 | 免费av网址大全 | 午夜精品视频在线 | 国产精品视频你懂的 | 日韩午夜大片 | 色是在线视频 | 国产不卡一区二区视频 | 国产精品久久久久久久久久了 | 深夜免费小视频 | 久久色在线观看 | 国产99久久九九精品免费 | 精品久久久久久一区二区里番 | 久久手机在线视频 | 激情欧美日韩一区二区 | 黄色的视频 | av免费网站观看 | www.成人久久| 久久久久免费精品视频 | 日韩欧美在线中文字幕 | 欧美在线视频精品 | 色综合天天色综合 | 久久亚洲成人网 | 日韩免费福利 | 日本韩国精品在线 | 狠狠干夜夜 | 久久久网页 | 久久视频精品在线 | 日韩毛片在线免费观看 | 久久乐九色婷婷综合色狠狠182 | 狠狠狠狠狠狠狠狠 | 91久久丝袜国产露脸动漫 | 欧日韩在线| 成在线播放 | 久久久久久毛片 | 国产字幕av | 国产成人三级三级三级97 | 超碰97国产在线 | 久久精品国产亚洲精品2020 | 国产最新精品视频 | 在线观看中文字幕av | 六月激情网| 中文字幕国产一区 | 成人免费xyz网站 | 亚洲欧美日韩国产一区二区三区 | 国产男女无遮挡猛进猛出在线观看 | 91一区啪爱嗯打偷拍欧美 | 日韩精品一区二区三区在线视频 | 免费a一级 | 高清久久久久久 | 国产丝袜制服在线 | 国产手机在线精品 | 成人免费观看视频网站 | 国产视频一区在线播放 | 色香蕉在线| a爱爱视频| 久久久国产精品人人片99精片欧美一 | 亚洲美女视频网 | 四虎在线免费观看视频 | 亚洲精品免费在线播放 | 81国产精品久久久久久久久久 | 69av在线视频| 亚洲五月| 免费日韩一区二区三区 | 精品91 | 国产精品毛片一区二区在线看 | 81国产精品久久久久久久久久 | 日韩在线国产精品 | 91日韩在线播放 | 91在线播放国产 | 日日夜夜av | 五月综合婷 | 免费福利小视频 | 亚洲电影图片小说 | 91在线视频网址 | 国产999精品久久久久久麻豆 | 日韩伦理一区二区三区av在线 | 亚洲女同ⅹxx女同tv | 国产原创在线观看 | 91人人澡人人爽人人精品 | 国产精品一区二区在线播放 | 最新av网站在线观看 | 欧美人人爱| 国产精品国产自产拍高清av | 成人黄色av网站 | 特级毛片在线免费观看 | 国产精品久久久久久久久毛片 | 国产精品一区二区在线观看免费 | 久久久九色精品国产一区二区三区 | 色综合久久88色综合天天6 | 成人免费看视频 | 91九色porny蝌蚪视频 | 狠狠色丁香婷婷综合久小说久 | 96视频免费在线观看 | 99精品一级欧美片免费播放 | 亚洲涩涩网站 | 婷婷丁香激情五月 | 91在线日韩 | 免费精品人在线二线三线 | 婷婷色资源 | 中文字幕在线日 | 久热这里有精品 | 国产一区二区电影在线观看 | 玖玖视频在线 | 国产成人99av超碰超爽 | 国产视频18 | 成人av在线一区二区 | 国产精品成人免费一区久久羞羞 | 日韩剧 | 亚洲精品久久久久www | 亚洲首页| 日日干视频 | av丝袜制服 | 九九久| 久久免费黄色网址 | 日日夜精品 | 亚州天堂 | 操久在线 | 毛片网站免费在线观看 | 亚洲精品国产综合久久 | 日三级在线 | 免费看片成年人 | 不卡的av| 亚洲精品乱码久久久一二三 | 干 操 插 | 国产一级片在线播放 | 天天射天天射 | 九九九九热精品免费视频点播观看 | 狠狠色丁香婷婷综合基地 | 久久久久久福利 | 日本三级久久久 | 日韩av三区 | 欧美精品久久久久久久久免 | 久久99精品国产麻豆婷婷 | 精品久久久免费 | 九九交易行官网 | 91c网站色版视频 | 欧美国产日韩一区二区三区 | 久久dvd | 中文字幕亚洲欧美日韩2019 | 成人免费观看网址 | 日本精品一区二区三区在线播放视频 | 99国产视频在线 | 久精品视频在线观看 | 视频一区二区国产 | 狠狠干夜夜操天天爽 | 亚洲国产成人精品电影在线观看 | 碰超人人 | 在线观看视频一区二区 | 天天色天天射综合网 | 中文字幕视频在线播放 | 国产一区二区三区 在线 | 超碰99在线 | 一本一本久久a久久精品牛牛影视 | 久久国内精品视频 | 五月婷婷狠狠 | 久久久久久久久久久久久久电影 | 黄网站免费久久 | 欧美日韩国产精品一区 | 久久久久久久久久久久久久免费看 | 免费在线观看av的网站 | 欧美aa一级片 | 99tvdz@gmail.com| 久久精品96 | 国模精品一区二区三区 | 揉bbb玩bbb少妇bbb | 免费av成人在线 | 成人99免费视频 | 狠狠干.com| av短片在线| 久久久久久久久久国产精品 | 欧美日韩国产一区二区三区 | 精品国产区在线 | 视频一区在线播放 | 五月激情在线 | 欧美精品一二 | 91丨九色丨91啦蝌蚪老版 | 在线观看国产v片 | 日韩欧美视频免费观看 | 99视频免费观看 | 久久久久久福利 | 超碰人人乐 | 日本精品一区二区三区在线观看 | 97在线视频网站 | 好看av在线 | 欧美一级特黄高清视频 | 亚洲精品电影在线 | 美国av片在线观看 | 麻豆视频免费入口 | 超碰97在线资源站 | 999电影免费在线观看 | 精品久久国产精品 | 亚洲在线成人精品 | 色婷婷激情电影 | 久99久精品视频免费观看 | 久久久久北条麻妃免费看 | 激情综合中文娱乐网 | 欧美国产在线看 | 在线精品一区二区 | 在线观看久久久久久 | 青青草在久久免费久久免费 | 天天干天天拍天天操 | 亚洲无吗视频在线 | 免费欧美 | 日批视频在线播放 | 亚洲视频分类 | 日韩精品在线观看av | 69av在线视频| 精品av网站 | 日韩高清一二三区 | 国产91九色视频 | 综合网中文字幕 | 国产精品丝袜久久久久久久不卡 | 美女网站视频免费黄 | 久草免费新视频 | 91在线日韩 | av黄色免费看| 不卡的av中文字幕 | 午夜视频免费播放 | 欧美日韩视频在线观看一区二区 | 97超级碰碰碰碰久久久久 | 国产黄在线播放 | 亚洲人人av | 在线中文字幕视频 | 丁香婷婷激情 | 黄色免费大全 | 四川妇女搡bbbb搡bbbb搡 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 国产视频一区二区在线播放 | 最近高清中文在线字幕在线观看 | 色婷婷午夜 | 97国产在线 | 在线 日韩 av | 97成人免费| 涩涩网站在线播放 | 久久99精品国产91久久来源 | 欧美午夜精品久久久久久浪潮 | 久久香蕉电影网 | 一区二区三区高清在线 | 国产一线二线三线在线观看 | 国产精品一区二区吃奶在线观看 | 久草免费在线观看 | 日韩免费网址 | av电影免费 | 亚洲一区二区三区在线看 | 国产精品99在线播放 | 国产黄影院色大全免费 | 蜜臀久久99精品久久久无需会员 | 久草网视频在线观看 | 免费a网址 | 中文字幕国产精品 | 天天干天天摸天天操 | 日韩专区一区二区 | 精品福利视频在线观看 | 精品在线视频播放 | 亚洲成a人片在线www | 国产999精品视频 | 久久国产视频网站 | 91成人精品一区在线播放 | 午夜av电影院 | 香蕉视频久久久 | 成人av资源站 | 国产亚洲视频系列 | 亚洲最新av | 亚洲精品男人的天堂 | 99re中文字幕 | 精品在线你懂的 | 激情久久网 | 九九国产精品视频 | 中文字幕.av.在线 | 最新精品国产 | 免费在线一区二区 | www夜夜 | 日韩中文免费视频 | 日免费视频 | 婷婷亚洲综合五月天小说 | 男女全黄一级一级高潮免费看 | 国产高清中文字幕 | 精品免费在线视频 | 成人黄色小视频 | 国产精品欧美久久久久天天影视 | 久久99精品一区二区三区三区 | 亚洲国产偷 | av中文字幕免费在线观看 | 男女日麻批| 婷婷色综 | 亚洲毛片一区二区三区 | 免费看的av片 | 国产99久久久国产精品成人免费 | 国产麻豆视频免费观看 | 国产日韩精品一区二区三区 | 欧美久久久久 | 午夜精品久久久久99热app | 亚洲黄色av一区 | 中文永久字幕 | 亚洲在线视频网站 | 国产 一区二区三区 在线 | av色图天堂网 | 视频一区视频二区在线观看 | 精品久久久久久综合 | 日韩欧美综合视频 | 美女精品网站 | 444av| 最新午夜 | 国产理伦在线 | 亚洲精品资源 | 97看片吧 | 日韩精品久久久久久久电影竹菊 | 在线不卡的av | 日韩在线电影一区二区 | 91资源在线视频 | 国产高清亚洲 | 久久免费试看 | 91av综合 | www.夜夜草| 日本公妇在线观看高清 | www视频免费在线观看 | 毛片久久久 | 丁香久久综合 | 亚洲经典在线 | 国产精品美女久久久久久久 | 国产免费又粗又猛又爽 | 国产手机av在线 | 色婷婷综合视频在线观看 | 成人黄色小说网 | 伊人五月天.com | 国产精品久久久久久一区二区 | 丁香婷婷基地 | 久久99国产一区二区三区 | 久久99婷婷 | 在线观看日韩一区 | 国产一区二三区好的 | 国产精品一区二区视频 | 成人久久18免费网站麻豆 | 久久av免费观看 | a一片一级 | 99久久精品久久亚洲精品 | 欧美性视频网站 | 97超碰人人澡人人爱学生 | 欧美日韩精品在线免费观看 | 久久香蕉电影网 | 国产五月色婷婷六月丁香视频 | 成人动漫精品一区二区 | 中文字幕视频播放 | 久草精品视频在线观看 | 在线看片中文字幕 | 成人av片在线观看 | 永久免费精品视频网站 | 91精品啪在线观看国产线免费 | 在线观看理论 | 国产一级片免费视频 | av中文字幕免费在线观看 | 91视频91蝌蚪 | 91精品国产麻豆 | 国产精品女视频 | 四虎影视av | 亚洲精品在线一区二区 | 日韩免费专区 | 天天超碰 | 99视频精品全部免费 在线 | 成人性生交视频 | 久久久久www | 中文字幕在线观看一区二区 | 亚洲在线视频网站 | 久久久免费视频播放 | 国产精品免费在线播放 | 国产精品嫩草影院123 | 国产综合片 | 久久视频二区 | 成年人国产视频 | 亚洲国产美女久久久久 | 天天干天天爽 | 国产日韩精品在线观看 | 日韩黄色免费在线观看 | 精品久久五月天 | 激情av网址 | 91视频黄色| 日日夜夜人人精品 | 日韩在线视频国产 | 99久久久久 | 在线免费观看视频你懂的 | 欧美日韩性视频 | 成年人三级网站 | 51久久成人国产精品麻豆 | 最近日本mv字幕免费观看 | 99久久精品免费 | 午夜久久久影院 | av日韩在线网站 | 一区二区免费不卡在线 | 免费黄色av电影 | 91欧美日韩国产 | 日韩在线观看电影 | 欧美影片 | 亚洲三级在线播放 | 亚洲精品在线视频播放 | 日韩亚洲欧美中文字幕 | av福利网址导航大全 | 日韩av黄| 综合久久久久久久久 | 欧美韩国日本在线 | 成年人电影免费在线观看 | 久久久久高清 | 精品福利在线视频 | 久久久久久久久久久久亚洲 | 中文字幕一区二区三区久久 | 天天干天天干 | 日韩高清免费电影 | 日韩av一区在线观看 | 亚洲毛片在线观看. | 久草综合在线 | 91在线观看视频网站 | 日韩中文字幕在线观看 | 国产高清免费av | 久久综合精品一区 | 久久久久在线 | 黄色毛片在线观看 | 日韩专区在线播放 | 精品亚洲午夜久久久久91 | 国产香蕉视频在线播放 | 亚洲精品午夜久久久久久久久久久 | 精品久久免费看 | 免费三级黄色 | 在线视频a | 日本久久精品视频 | 黄色一区二区在线观看 | 六月丁香婷 | 66av99精品福利视频在线 | 一区二区三区日韩精品 | 黄色片免费在线 | 激情婷婷 | 九九九热精品 | 久久久久国产精品www | 缴情综合网五月天 | 国产美女视频网站 | www免费网站在线观看 | av一级在线观看 | 欧美国产日韩在线观看 | 黄色大全视频 | 中文字幕在线看视频国产中文版 | 欧美一区日韩精品 | 欧美亚洲一级片 | 成人h动漫精品一区二 | 国产午夜亚洲精品 | 久久综合九色综合欧美狠狠 | 中文av字幕在线观看 | 中文字幕一区二区三区在线观看 | 香蕉视频在线视频 | 亚洲天堂网在线播放 | 国产精品激情 | 97成人超碰 | 国产女人40精品一区毛片视频 | 欧美 另类 交| 92国产精品久久久久首页 | 欧美国产日韩一区二区三区 | 99久久99久久精品国产片 | 一区二区久久 | 亚洲欧美精品一区二区 | 国产在线一线 | 在线看v片成人 | 中文字幕在线看片 | 欧美色图亚洲图片 | 在线观看你懂的网站 | 国产免费观看久久 | 国产色视频一区 | 蜜桃视频色 | 久久蜜臀一区二区三区av | 亚洲婷婷在线视频 | 亚洲国产精品免费 | 久久激五月天综合精品 | 中文字幕第一页在线 | 久久久网址 | 国产亚洲成人精品 | 国产一区视频免费在线观看 | 天天干人人干 | 99 视频 高清 | 97在线视频免费播放 | 亚洲一区二区三区毛片 | 韩国在线一区二区 | av电影中文字幕在线观看 | 日本中文字幕在线一区 | 色香蕉网 | 免费亚洲一区二区 | 成人黄色片免费 | 黄色91在线 | 三级av在线播放 | 日韩日韩日韩日韩 | 日韩在线视频免费看 | 亚洲第一区精品 | 97av超碰| 中文字幕中文中文字幕 | 美女久久精品 | 欧美日韩午夜爽爽 | 亚洲精品久久久久www | www九九热 | 国产午夜激情视频 | 精品国产91亚洲一区二区三区www | 亚洲欧美精品一区二区 | 中文字幕国产视频 | 黄av在线| 激情av资源| 夜夜婷婷| 欧美日韩国产一二 | 亚洲精品国产精品国自产观看浪潮 | 色综合中文综合网 | 黄色成年片| 超碰在线公开免费 | 免费福利视频网站 | 久久久久成人精品亚洲国产 | 丁香婷婷在线观看 | 免费福利视频网 | 性色av免费看 | 天天操天天综合网 | 丁香九月激情 | 午夜在线免费观看视频 | 国产日韩中文字幕在线 | 国产手机在线观看视频 | 国产高清福利在线 | 午夜精品一区二区三区可下载 | 狠狠色丁香婷婷综合最新地址 | 在线午夜电影神马影院 | 国产无遮挡猛进猛出免费软件 | 黄色av大片 | 九九热在线观看 | 97人人射| 波多野结衣在线播放一区 | 成人免费视频免费观看 | 国产小视频在线免费观看视频 | 黄色www在线观看 | www久久国产 | 亚洲国产人午在线一二区 | 二区三区中文字幕 | 97电影手机版 | 国产午夜亚洲精品 | 久久九九国产精品 | 伊人五月天av | 日韩欧美高清在线 | 亚洲精品视频第一页 | 在线观看麻豆av | 精品视频在线观看 | 麻豆免费在线视频 | 国产精品久久精品 | 亚洲精品va | ,午夜性刺激免费看视频 | 99精品国产亚洲 | 色播五月激情五月 | 九九热免费在线观看 | 深爱婷婷久久综合 | 亚洲一区二区天堂 | 国内视频一区二区 | 久久激情五月激情 | 国产精品福利在线播放 | 亚洲最大在线视频 | 在线观看网站av | 香蕉网站在线观看 | 天天综合中文 | 毛片美女网站 | 精品中文字幕在线播放 | 日韩精品一区二区在线观看视频 | av网站地址 | 久草在线视频国产 | 国产精品久久久久999 | 成人福利在线播放 | 久久久99精品免费观看 | 黄色精品一区 | 青青视频一区 | 国产九色在线播放九色 | 久久成人久久 | 天天插日日射 | 91黄色在线看 | 久久影院午夜论 | 国内揄拍国产精品 | 亚洲精品美女久久久久网站 | 久久国产精品一区二区三区 | 亚洲一本视频 | 视频在线观看99 | 久草在线免费电影 | 色婷婷啪啪免费在线电影观看 | 蜜桃麻豆www久久囤产精品 | 欧美一区二区三区激情视频 | 中文在线字幕观看电影 | 国产成人av网 | 日韩免费在线观看 | 国产成人精品综合久久久久99 | 最近中文字幕高清字幕免费mv | 中文字幕av在线播放 | 欧美精选一区二区三区 | 一区二区三区日韩在线 | 久久99久久99精品中文字幕 | 成人免费精品 | 亚洲网久久 | 成人在线视频免费看 | 麻豆精品传媒视频 | 91精品成人久久 | 夜夜骑天天操 | www.亚洲精品在线 | 欧美a级成人淫片免费看 | 在线播放91| 欧美日韩性| 911国产| 91麻豆文化传媒在线观看 | 8x8x在线观看视频 | 国产精品 美女 | 日韩专区 在线 | 国产91精品看黄网站在线观看动漫 | 超碰在线97免费 | 免费观看不卡av | 久久精品美女视频网站 | 91大神电影 | 国产中文在线视频 | 在线有码中文 | 最近中文字幕在线中文高清版 | 国产精品免费在线观看视频 | 久久综合国产伦精品免费 | 奇米影音四色 | 国产精品乱码久久久 | 欧美老人xxxx18 | 最新日韩视频 | 黄色在线看网站 | 久久久香蕉视频 | 国产香蕉视频在线观看 | 国产中年夫妇高潮精品视频 | 国际精品久久 | 亚洲成av人片在线观看无 | 最新av网址在线观看 | 天天干,天天干 | 夜色成人av | 亚洲欧美日韩精品久久奇米一区 | 99免费看片| 国产精品成人一区二区 | 日韩久久久| 日日操天天操狠狠操 | 狠狠撸电影 | 精品一区二区三区久久 | 久久久午夜精品福利内容 | 亚洲伊人成综合网 | 日韩综合精品 | 国产美女在线观看 | 99热.com| 日韩乱码中文字幕 | 中文免费 | 国产亚洲精品bv在线观看 | www九九热| 国产精品黄色 | 国产美女主播精品一区二区三区 | 一区二区三区在线观看免费视频 | 国产一区二区在线免费 | 精品专区一区二区 | 久久精品亚洲国产 | 日韩免费观看视频 | 久草在线观看 | 狠狠色丁香婷婷综合久小说久 |