spring-boot项目用jar包启动时Launcher与项目的启动函数是否在同一线程

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属于同一进程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

错对对

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值