为什么Spring Boot默认将Web应用程序打包为 .jar ? .war是否有任何优势?
不能将所有打包为.war的Web应用程序部署到真实的Web服务器上吗?
我认为.jar文件用于桌面应用程序,而.war文件用于Web应用程序。因为.jar不包含这里提到的Web应用程序组件:
答案 0 :(得分:8)
您链接到有关WAR与JAR的问题,而Spring引导的JAR确实是一个JAR,它包含的内容多于您通常放在JAR中的内容。 Spring引导伴随embedded servlet container,the JAR内部。
所以差异:
关于您的问题:
不能将所有打包为.war的Web应用程序部署到真实的Web服务器上吗?
如果要在现有servlet容器上运行Web应用程序,则必须use a WAR file。但Spring引导JAR带有自己的servlet容器,所以你也可以完美地运行它。
您选择的两个中的哪一个是您自己的选择。即使Josh Long's mantra是"制作JAR,而不是WAR"。
答案 1 :(得分:2)
By default Spring boot将为您提供嵌入式Tomcat(在jar中)。部署这样的jar将减少对环境的依赖,并且需要更少的配置(“开箱即用的解决方案”)。
答案 2 :(得分:0)
我认为springboot的重点是配置最少的开发速度。因此,您可能认为它们提供了开箱即用的解决方案,即服务器(tomcat或jetty)嵌入在jar中。
云上的微服务也只是在jar中推广嵌入式服务器,这样服务器就可以只针对应用程序进行优化,而且不需要为小应用程序设置tomcat服务器。
如果你想要你可以创造春季启动应用的战争
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html