spring boot jar启动

2020-12-22 08:28

阅读:630

标签:文件   nbsp   info   间接   依赖   java   org   是你   为什么   

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启动

标签:文件   nbsp   info   间接   依赖   java   org   是你   为什么   

原文地址:https://www.cnblogs.com/zzq-include/p/13216307.html


评论


亲,登录后才可以留言!