spring boot jar启动

Posted soft.push("zzq")

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot jar启动相关的知识,希望对你有一定的参考价值。

spring boot中jar包方式运行主要依赖于,打包后在jar归档文件根目录的org.springfreamwork.boot.loader.JarLauncher类中执行main方法。

JarLauncher是其中的一个启动引导类,除此以外还有warLauncher,但我们不做过多探讨;

说说jar启动,首先打包后的jar存在3个目录

1 boot-info目录,该目录是当前的自己业务代码的核心目录,里面包含class文件夹和lib文件夹,也就是你的项目类加载目录和jar的依赖包目录。

2 org.springfreamwork.boot.loader文件夹,这个文件夹是jar项目的启动项目;到这里我们意识到了,jar启动并不是直接去启动我们写的项目,而是通过JarLauncher间接启动我们自己的项目。

3 mate-info目录,这里面有该jar包启动所需要的清单文件,MANIFEST.MF 。

 MANIFEST中有2个配置项最关键。分别是main-class,start-class。main-class的值就是org.springfreamwork.boot.loader.JarLauncher,而start-class才是我们自己项目中定义的静态main方法。

那么springboot为什么这么设计呢?

之前我们提到了,jar归档文件中有3个文件夹,那么我们的项目实际在boot-info目录中,如果直接通过java -jar的方式去启动则jar本身的内部文件形式并不是标准的jar包;实际是没法使用的,毕竟jar中包含的文件还存在lib文件夹,而lib中仍然有jar包,这显然不是一个我们常规意义上标准的jar包形式

以上是关于spring boot jar启动的主要内容,如果未能解决你的问题,请参考以下文章

spring boot liunx 怎么启动

spring boot启动原理步骤分析

spring boot 启动方式

Spring boot项目以jar包形式启动中文乱码

linux下部署Spring boot jar包

spring boot怎么启动