从jar包内META-INF/MANIFEST.MF文件中的Main-Class属性值为org.springframework.boot.loader.JarLauncher,可以看出main函数是JarLauncher,即:SpringBoot应用中的Main-class属性指向的class为org.springframework.boot.loader.JarLauncher。 其实吧,主要是 Java官方文档规定:java -jar命令引导的具体启动类必须配置在MANIFEST....
大家也可以打开 SpringBoot 的源码,就有一个专门的 JarLauncherTest 大家可以写一个测试方法,来用JarFileArchive 打开一个平时我们的 jar包看看效果,这是我的: 可以看到对 jar包 的封装,每个JarFileArchive都会对应一个JarFile。JarFile被构造的时候会解析内部结构,去获取jar包里的各个文件或文件夹,这些文件或文件...
这里设置为spring-boot-loader项目的 JarLauncher 类,进行 Spring Boot 应用的启动。
JarFile:对jar包的封装,每个JarFileArchive都会对应一个JarFile。JarFile被构造的时候会解析内部结构,去获取jar包里的各个文件或文件夹,这些文件或文件夹会被封装到Entry中,也存储在JarFileArchive中。如果Entry是个jar,会解析成JarFileArchive。 比如一个JarFileArchive对应的URL为: jar:file:/Users/format/Develop/...
收起 一、Spring Boot能用Jar包启动的底层原理 二、Spring Boot的启动过程 三、Fat Jar的结构 四、...
相比与传统的Java打包方式,使用SpringBoot打包插件打包成jar包后,可以直接使用java -jar运行SpringBoot项目,本篇就来分析一下运行的原理。 SpringBoot打包插件 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> ...
凡是你接触过一点点 Spring Boot 项目,你一定知道通过java -jar xxx.jar命令便能把一个 Spring Boot 服务启动起来。(如果你还没接触过,这里的内容可以日后再看,先轻微了解一下 Spring Boot 项目的玩法) 一个看似简陋的java -jar究竟干了什么,就把咱们手写的应用(咱们的项目可能叫 XXXApplication.java)启动了呢...
SpringBoot相对Spring的优点主要有两个: 1.起步依赖-会将很多jar包按照功能合并成stater整体进行版本管理和引用,解决Spring集成其他框架时jar版本管理问题 2.自动装配-引入相关的jar包后SpringBoot会自动注册一些比较关键的bean,并进行默认配置,不用我们进行特殊配置,解决Spring重量级XML配置问题。比如整合Mybatis时的...
简单说就是,java -jar 命令引导的具体启动类必须配置在 MANIFEST.MF 资源的 Main-Class 属性中。 那回过头再去看下之前打包好、解压之后的文件目录,找到 /META-INF/MANIFEST.MF 文件,看下元数据: org.springframework.boot.loader.JarLauncher 类存放在 org/springframework/boot/loader 下面: ...