簡體   English   中英

Spring Boot包Web應用程序到.jar

[英]Spring Boot package web application to .jar

為什么Spring Boot默認將Web應用程序打包為.jar .war有什么優勢嗎?

不應該將所有Web應用程序打包為.war以便部署到真正的Web服務器?

我認為.jar文件用於桌面應用程序,而.war文件用於Web應用程序。 因為.jar不包含這里提到的Web應用程序組件:

Java戰爭與jar - 有什么區別?

您鏈接到有關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,而不是戰爭”。

默認情況下,Spring啟動將為您提供嵌入式Tomcat(在jar中)。 部署這樣的jar將減少對環境的依賴,並且需要更少的配置(“開箱即用的解決方案”)。

看到非常相似的問題及其答案。

我認為springboot的重點是開發速度最快,配置最少。 因此,您可能認為它們提供了開箱即用的解決方案,該服務器(tomcat或jetty)嵌入在jar中。

此外,雲上的微服務僅在jar中推廣嵌入式服務器,因此服務器可以僅針對應用程序進行優化,而無需為小型應用程序設置tomcat服務器。

如果你想要你可以創建春季啟動應用程序的戰爭
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM