Application Web du package Spring Boot au format .jar

Pourquoi Spring Boot conditionne-t-il par défaut les applications Web au format .jar ? Y at-il des avantages sur .war?

Toutes les applications Web ne devraient-elles pas être compressées au format .war pour pouvoir être déployées sur un vrai serveur Web?

Je pensais que les fichiers .jar étaient destinés aux applications de bureau, tandis que les fichiers .war étaient destinés aux applications Web. puisque .jar ne contient pas de composants d’applications Web comme mentionné ici:

Guerre Java contre jar – quelle est la différence?

Vous avez lié à une question sur un WAR par rapport à un fichier JAR, alors que le fichier JAR de Spring Boot est bien un fichier JAR, il contient plus que ce que vous insérez habituellement dans un fichier JAR. Spring Boot est livré avec un conteneur de servlets intégré , à l’ intérieur du JAR lui-même.

Donc la différence:

  • Un fichier JAR: contient généralement des ressources / bibliothèques / applications de bureau / …
  • Un WAR: une application Web pouvant être exécutée sur un conteneur Web
  • Le fichier JAR Fat de démarrage initial: une application Web qui s’exécute sur son propre conteneur Web.

A propos de votre question:

Toutes les applications Web ne devraient-elles pas être compressées au format .war pour pouvoir être déployées sur un vrai serveur Web?

Si vous souhaitez exécuter une application Web sur un conteneur de servlets existant, vous devez utiliser un fichier WAR . Mais le fichier JAR de démarrage Spring est fourni avec son propre conteneur de servlets, vous pouvez donc également l’exécuter parfaitement.

Lequel des deux que vous choisissez est votre propre choix. Même si le mantra de Josh Long est “Make JAR, not WAR”.

Par défaut, Spring Boot vous fournira Tomcat intégré (dans le fichier jar). Le déploiement d’un tel fichier jar vous rendra moins dépendant de l’environnement et nécessitera moins de configuration (“solution prête à l’emploi”).

Voir la question très similaire et ses réponses.

Je pense que l’essentiel de Springboot est la rapidité de développement avec une configuration minimale. Vous pouvez donc penser qu’ils fournissent une solution prête à l’emploi, ce serveur (tomcat ou jetty) étant intégré au bocal.

De plus, les micro-services sur le cloud assurent la promotion du serveur intégré dans le fichier jar uniquement, de sorte que le serveur puisse être optimisé pour une application uniquement et qu’il n’est pas nécessaire de configurer le serveur tomcat pour une petite application.

Si vous voulez, vous pouvez créer une application de démarrage de spring
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html