Spring Boot包Web应用程序到.jar

Mar*_*uka 12 java spring spring-boot

为什么Spring Boot默认将Web应用程序打包为.jar?.war有什么优势吗?

不应该将所有Web应用程序打包为.war以便部署到真正的Web服务器?

我认为.jar文件用于桌面应用程序,而.war文件用于Web应用程序.因为.jar不包含这里提到的Web应用程序组件:

Java战争与jar - 有什么区别?

g00*_*00b 10

您链接到有关WAR与JAR的问题,而Spring引导的JAR确实是一个JAR,它包含的内容多于您通常放在JAR中的内容.Spring引导附带一个嵌入式servlet容器,位于JAR本身内部.

差异如此:

  • JAR:通常包含资源/库/桌面应用程序/ ...
  • WAR:可以 Web容器运行的Web应用程序
  • Spring boot fat JAR:在自己的Web容器上运行的Web应用程序

关于你的问题:

不应该将所有Web应用程序打包为.war以便部署到真正的Web服务器?

如果要在现有servlet容器上运行Web应用程序,则必须使用WAR文件.但Spring引导JAR带有自己的servlet容器,所以你也可以完美地运行它.

您选择哪两个是您自己的选择.尽管Josh Long的口头禅是"制造JAR,而不是战争".