标签:定义类 使用 开放 eth spring loading runner boot 手动
spring boot提供了一个spring-boot-maven-plugin的插件,用于将spring boot程序打包成可执行的jar包(fat jar),在pom.xml里加入这个插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
myspringboot-0.0.1-SNAPSHOT --BOOT-INF --classes >里面是自己的springboot程序的class --lib >pom.xml里的依赖jar --classpath.idx >lib里jar包的清单 --META-INF --maven >maven的相关文件,pom.xml、pom.properties(gav) --MANIFEST.MF >jar包的标准清单 --org >spring boot loader相关类 --springframework --boot --loader --JarLauncher.class --WarLauncher.class --...
Manifest-Version: 1.0 Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx Implementation-Title: myspringboot Implementation-Version: 0.0.1-SNAPSHOT Start-Class: com.lionman.boot.MainApplication Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/ Build-Jdk-Spec: 1.8 Spring-Boot-Version: 2.3.1.RELEASE Created-By: Maven Jar Plugin 3.2.0 Implementation-Vendor: Pivotal Software, Inc. Main-Class: org.springframework.boot.loader.JarLauncher
Main-Class是fat jar可执行主类名,即:org.springframework.boot.loader.JarLauncher,这个才是Spring Boot应用的入口。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-loader</artifactId> </dependency>
这样就可以看到spring boot loader了
打包时就是把这个jar里的内容拷贝到fat jar里。
JarLauncher的main方法两步:new JarLauncher()、launch(args)
new JarLauncher()完成了构造Archive,这里即JarArchive。
launch(args)调用的是基类Launcher里的方法,源码如下:
创建MainMethodRunner,反射调用spring boot启动类里的main方法。
标签:定义类 使用 开放 eth spring loading runner boot 手动
原文地址:https://www.cnblogs.com/onezg/p/13192066.html