为什么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插件打包完成