Spring boot中启动类配置(或Application主入口类配置)存放在何处?
问题:
一个Springboot的应用程序包,假设其名称叫HelloApplication.jar,通过java -jar HelloApplication.jar可以启动这个应用,那么这个运行的类是哪一个呢?
解决:
这个问题其实很简单(未了解前就觉得很难),它就藏在HelloApplication.jar/META-INF/MENIFEST.INF文件中。文件内容如下:
Manifest-Version: 1.0
Built-By: builder
Build-Jdk: 1.7.0_79
Start-Class: com.weit.BpmApplication
Created-By: Apache Maven 3.3.9
Spring-Boot-Version: 1.3.2.RELEASE
Main-Class: org.springframework.boot.loader.JarLauncher
Archiver-Version: Plexus Archiver
这个Start-Class 键的值就是应用的主类,如这里com.weit.BpmApplication就是应用的主类。
知道了这点以后,有些问题就比较好处理了,例如:应用包中主应用类包路径发生了变化,又不想重新打整个服务包。
这时只需编译好那个主应用类,将新的主应用类放入服务包中,删除旧的主应用类,然后修改MANIFEST.INF中的 Start-Class值为新的主应用类全路径,就OK了。