0%

为什么springboot可以直接执行

为什么springboot可以直接执行

先看一下springboot打包生成的MANIFEST.MF内容是什么

1
2
3
4
5
6
7
8
9
10
11
12
Manifest-Version: 1.0
Implementation-Title: exam-admin
Implementation-Version: 1.0-SNAPSHOT
Start-Class: com.zhanghe.exam.Application
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Build-Jdk-Spec: 1.8
Spring-Boot-Version: 2.1.6.RELEASE
Created-By: Maven Archiver 3.4.0
Main-Class: org.springframework.boot.loader.JarLauncher


可以看到程序的主类是org.springframework.boot.loader.JarLauncher,所以在使用java -jar来执行springboot项目时,真正执行的是JarLauncher中的main方法,该类的作用是Springboot内部提供的工具,用于执行Application的工具类

这些特性通过spring-boot-maven-plugin插件打包完成