web-dev-qa-db-fra.com

Différence entre Spring MVC et Spring Boot

Je viens de commencer à apprendre le printemps. Dans ma prochaine étape, j'aimerais développer de plus grandes applications Web.

Maintenant, je me demande si je devrais commencer par Spring Boot ou Spring MVC. J'ai déjà lu des choses, mais c'est déroutant car les deux se ressemblent.

Alors, quelles sont les différences entre les deux?

161
Gero
  • Spring MVC est un framework MVC complet orienté HTTP géré par Spring Framework et basé sur des servlets. Ce serait équivalent à JSF dans la pile JavaEE. Les éléments les plus populaires sont des classes annotées avec @Controller, où vous implémentez des méthodes auxquelles vous pouvez accéder à l'aide de différentes requêtes HTTP. Il a un équivalent @RestController pour implémenter des API basées sur REST.
  • Spring Boot est un utilitaire permettant de configurer rapidement des applications, offrant une configuration prête à l'emploi permettant de créer des applications utilisant Spring. Comme vous le savez peut-être, Spring intègre un large éventail de modules sous son parapluie , sous la forme de spring-core , spring- data , spring-web (qui inclut Spring MVC, soit dit en passant) et ainsi de suite. Avec cet outil, vous pouvez indiquer à Spring combien d’utilisateurs doivent être utilisés et vous obtiendrez une configuration rapide pour eux (vous pourrez le modifier vous-même ultérieurement).

Spring MVC est donc un framework à utiliser dans les applications Web et Spring Boot est un initialiseur de projet prêt pour la production . Vous pourriez trouver utile de visiter le wiki du tag Spring MVC ainsi que le wiki du tag Spring Boot à SO.

233
Xtreme Biker

Spring MVC et Spring Boot sont bien décrits dans les autres réponses, et donc sans répéter cela, permettez-moi de passer directement aux détails. Spring Boot et Spring MVC ne sont ni comparables ni mutuellement exclusifs. Si vous souhaitez développer Web avec Spring, vous devez utiliser Spring MVC. Votre question est alors de savoir s'il faut utiliser Spring Boot ou non.

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

J'ai parfois vu 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. Donc, ma recommandation serait de créer un projet Spring Boot et de choisir Web en tant que module dans celui-ci.

86
Sanjay

Spring MVC est un sous-projet de Spring Framework, qui vise la conception et le développement d'applications utilisant le modèle MVC (Model-View-Controller). Spring MVC est conçu pour s’intégrer pleinement au cadre de Spring et, de manière transitoire, à la plupart des autres sous-projets.

Spring Boot peut être très bien compris grâce à cet article par l'équipe d'ingénierie de Spring. C’est soi-disant une opinion, c’est-à-dire qu’elle préconise fortement un certain style de développement rapide, mais elle est suffisamment bien conçue pour permettre des exceptions à la règle, si vous voulez. En bref, il s’agit d’une méthode de convention sur la configuration conçue pour comprendre votre besoin de rompre la convention lorsque cela est justifié.

10
Web User

Voici quelques points principaux qui différencient Spring et Spring Boot:

Spring:

  1. La principale différence est "capacité à tester".
  2. Le printemps arrive avec le DI et le CIO. Grâce à quoi tout le travail effectué par le système ne nécessite aucun type de travail (comme, normalement, nous définissons un objet de classe manuellement, mais via Di, nous annotons simplement avec @Service ou @Component - la classe correspondante gère ces éléments).
  3. Grâce à l'annotation @Autowired, nous le modifions facilement au moment du test unitaire.
  4. Duplication et code de plomberie. En JDBC, nous écrivons plusieurs fois dans le même code pour effectuer tout type d'opération de base de données. Spring a résolu ce problème par le biais d'Hibernate et d'ORM.
  5. Bonne intégration avec d'autres cadres. Comme Hibernate, ORM, Junit & Mockito.

Spring Boot:

  1. Créez une application rapide de manière à ce que, au lieu de gérer une seule application Web volumineuse, nous les divisions individuellement en différents microservices dotés de leur propre portée et de leurs propres capacités.
  2. Configuration automatique à l'aide d'un fichier Web Jar: Normalement, il existe de nombreuses configurations telles que DispatcherServlet, l'analyse des composants, le résolveur de vues, le fichier Web Jar et les fichiers XML. (Par exemple, si je souhaite configurer la source de données, Entity Manager Transaction Manager Factory). Configurez automatiquement quand ce n'est pas disponible en utilisant class-path.
  3. Fourni avec des démarreurs Spring par défaut, qui sont livrés avec une dépendance de configuration Spring par défaut (telle que Spring Core, Web-MVC, Jackson, Tomcat, Validation, Liaison de données, Journalisation). Ne vous inquiétez pas du problème de versioning aussi.

Remarque: il ne contient pas tous les points.

8
Dhwanil Patel

SpringBoot est en fait préconfiguré pour réduire la configuration de la chaudière et constitue le moyen le plus simple ou le plus rapide de démarrer votre application.

SpringBoot prend le casse-tête de la configuration du développeur à soi-même plutôt que Spring.

Implicitement, SpringBoot est basé sur le concept d’infrastructure Spring comme bean, contrôleur, services, jpa, etc.

Vous pouvez dire que SpringBoot est une enveloppe de Spring.

Dans SpringBoot, le port par défaut du serveur est 8080, mais si vous souhaitez modifier, accédez à votre application.properties et écrivez

server.port = 8084

  • En utilisant un démarrage à ressort, vous n’aurez pas besoin de construire de configuration. Cela sera fait automatiquement lorsque vous créez un projet.

  • Si vous utilisez Spring MVC, vous devez créer vous-même la configuration. C'est plus compliqué, mais c'est crucial.

5
Leanghak

En termes simples, on peut dire:

Spring boot = Spring MVC + Auto Configuration(Don't need to write spring.xml file for configurations) + Server(You can have embedded Tomcat, Netty, Jetty server).

Spring Boot étant un framework Opinionated, il est conçu pour un développement rapide, moins de temps nécessaire à la configuration et un très bon support de la communauté.

2
Bishal Jaiswal

Sans répéter la même chose dans les réponses précédentes, j’écris cette réponse à l’intention des personnes qui cherchent à démarrer un nouveau projet et ne savent pas quel est le meilleur cadre pour commencer. Si vous êtes débutant dans ce cadre, la meilleure chose que je préfère est l’utilisation de démarrage à ressort (avec STS/Spring Tool Suite). Parce que ça aide beaucoup. Son faire toutes les configurations sur son propre. De plus, utilisez Hibernate avec spring pour construire vos bases de données. Ensuite, votre application sera la meilleure du présent. Je peux le garantir.

Comme c’est l’un des meilleurs cadres pour JEE au présent, il mourra dans le futur. Il y a des alternatives légères à venir. Alors restez à jour avec votre expérience, ne vous en tenez pas à un cadre particulier. La meilleure chose à faire est de parler couramment les concepts, pas les cadres.

2

Spring MVC est un framework Web basé sur un contrôleur de vue de modèle (MVC) sous Spring Framework. C’est le framework Web original construit sur l’API Servlet. Il fournit plusieurs fonctionnalités prêtes à l'emploi pour la création d'une application Web.

  • Séparation claire des rôles. Chaque rôle (contrôleur, validateur, objet de commande, objet de formulaire, objet de modèle, DispatcherServlet, mappage de gestionnaire, résolveur de vues, etc.) peut être rempli par un objet spécialisé.
  • Une configuration simple et puissante des classes d'infrastructure et d'application en tant que JavaBeans.
  • Reliure et validation personnalisables.

  • Mappage de gestionnaire personnalisable et résolution d'affichage.

  • Puissant thème et caractéristiques de résolution locale.

Spring Boot est un utilitaire puissant permettant de configurer rapidement une application en proposant des configurations par défaut pour créer des applications utilisant Spring. Voici la liste des fonctionnalités pour Spring Boot.

  • L'un des meilleurs prêts à utiliser la plate-forme de micro-services.

  • Utilisez une approche de configuration intelligente et conventionnelle qui réduit considérablement les phases de démarrage et de configuration de votre projet.

  • Gestion de la configuration puissante et flexible à l'aide du fichier application.properties ou yml.

  • Module de configuration automatique.

  • Les démarreurs Spring Boot offrent une configuration automatique prête à l'emploi pour votre application.

  • Module d'actionneur prêt à la production.

  • Cela simplifie les dépendances de Spring en prenant une vue opinionée.

1
Abdul Alim Shakir