Différence entre Spring MVC et Spring Boot?

Je viens de commencer à apprendre Spring. Dans ma prochaine démarche, j’aimerais développer des applications web plus importantes.

Je me demande maintenant si je dois commencer avec Spring Boot ou Spring MVC. J’ai déjà lu quelques articles, mais c’est déroutant car les deux se ressemblent.

Quelles sont donc les différences entre les deux?

Je vous recommande de lire ce tutoriel:

  • Spring MVC est un framework MVC complet orienté HTTP géré par le framework Spring et basé sur les Servlets. Il est l’équivalent de JSF dans la pile JavaEE. Ses éléments les plus populaires sont les classes annotées avec @Controller, où vous implémentez des méthodes auxquelles vous pouvez accéder en utilisant différentes requêtes HTTP. Il dispose d’un @RestController équivalent pour mettre en œuvre des API basées sur REST.

  • Spring boot est un utilitaire permettant de mettre en place rapidement des applications, offrant une configuration prête à l’emploi afin de créer des applications alimentées par Spring. Comme vous le savez peut-être, Spring intègre un large éventail de modules différents sous son chapeau, comme spring-core, spring-data, spring-web (qui inclut Spring MVC, d’ailleurs) et ainsi de suite. Avec cet outil, vous pouvez indiquer à Spring combien parmi ces modules il doit utiliser et vous obtiendrez une configuration rapide pour ceux-ci (vous êtes autorisé à les modifier vous-même par la suite).

Donc, Spring MVC est un framework à utiliser dans les applications web et Spring Boot est un initialisateur de projet prêt pour la production basé sur Spring.

Spring Boot et Spring MVC ne sont pas comparables. Si vous souhaitez développer des applications Web à l’aide de Spring, vous utiliserez de toute façon Spring MVC. Votre question est donc de savoir si vous devez utiliser Spring Boot ou non.

Pour développer des applications Spring courantes ou pour commencer à apprendre Spring, je pense que l’utilisation de Spring Boot est recommandée. Il facilite considérablement le travail, est prêt pour la production et est rapidement adopté.

J’ai vu parfois des débutants poser cette question parce que dans STS (Spring Tool Suite) il y a deux assistants : un pour créer un projet Spring Boot, et un autre pour créer un projet Spring MVC. Je vous recommande donc de créer un projet Spring Boot.

Spring Boot = Spring MVC + Auto Configuration (pas besoin d’écrire le fichier spring.xml pour les configurations) + Serveur (vous pouvez avoir un serveur Tomcat, Netty, Jetty intégré).