美文网首页
spring-boot项目用jar包启动时Launcher与项目

spring-boot项目用jar包启动时Launcher与项目

作者: 错对对 | 来源:发表于2019-11-07 09:49 被阅读0次

    spring-boot 可执行jar中

    META-INF/MANIFEST.MF

    Manifest-Version: 1.0 Created-By: Maven Archiver 3.4.0 Build-Jdk-Spec: 11 Implementation-Title: spring-boot Implementation-Version: 0.0.1-SNAPSHOT Main-Class: org.springframework.boot.loader.JarLauncher Start-Class: com.cdd.springboot.Application Spring-Boot-Version: 2.2.0.RELEASE Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/

    根据java官方文档和java文档规范我们知道jar包启动必须在META-INF/MANIFEST.MF(启动类)定义Main-class和Start-Class(引导类)

    image.png

    spring-boot项目编译成jar包的目录结构如下

    1、BOOT-INF存放项目的class和依赖

    2、META-INF存放maven打包配置和MANIFEST.MF

    3、最后一个文件夹存放解析jar包的launcher

    image.png

    根据META-INF/MANIFEST.MF里面的配置内容可以发现 当使用jar方式部署时spring-boot 用org.springframework.boot.loader.JarLauncher这个类启动整个项目,当然也可以很容易的发现用war包部署时用org.springframework.boot.loader.WarLauncher启动

    image.png

    jar包启动首先会调用Main-Class的main方法,跟踪代码会发现最终会同步调用Start-Class的main方法,所以看到这里我们可以得出结论 用jar包启动时项目的启动类和JarLauncher属于同一进程。

    相关文章

      网友评论

          本文标题:spring-boot项目用jar包启动时Launcher与项目

          本文链接:https://www.haomeiwen.com/subject/bkembctx.html