Spring MVC ou Spring Boot [fermé]

114

Pour un projet de grande entreprise (Web), recommandez-vous d'utiliser Spring MVC ou Spring-Boot?

Spring-Boot, en termes de configuration, est très simple par rapport à Spring MVC.

Je me demande si j'utilise Spring-Boot peut avoir les mêmes avantages que Spring MVC?

Que recommandez-vous?

Diego
la source
29
Le choix n'est pas entre MVC et Boot car Boot peut utiliser MVC (et le configurer automatiquement) . Si vous voulez dire "Boot or Boot-less?" alors cela dépend du degré d'ouverture de votre entreprise à l'innovation (et aux risques associés). Quoi qu'il en soit, demander une recommandation est hors sujet ici.
kryger
Merci pour votre réponse. J'ai réalisé que la botte à ressort peut être configurée pour ressort mvc. Mais je ne sais pas s'il faut utiliser Spring-Boot ou Spring MVC, les deux ont les mêmes caractéristiques (Spring Boot est facile à configurer). De votre expérience que vous utilisez?
Diego
1
Spring boot économise votre temps pour configurer une application avec des beans par défaut et gérer également les dépendances. Mais, spring-boot et spring-mvc ont des objectifs différents. Si vous voulez utiliser spring-boot avec spring-mvc, vous pouvez et vous n'avez rien à configurer à moins que vous ne vouliez remplacer la configuration personnalisée.
Eddú Meléndez
Merci pour votre réponse. Pour mon futur projet utilisera Spring -Boot. Je pense que Spring -Boot est plus facile à configurer et fait gagner beaucoup de temps.
Diego
2
Et spring boot n'est pas incompatible avec un emballage de guerre et un conteneur de servlet externe, voir 58.2
Empaquetage des

Réponses:

106

Mon conseil personnel est d'utiliser définitivement Spring Boot pour de nombreuses raisons.

  1. Le premier est que Boot est le «futur du printemps». Cela signifie qu'avec Boot, vous pouvez bénéficier de nombreux engagements de la communauté Spring. Aujourd'hui, la plupart des projets Spring sont complètement intégrés à Boot, même la communauté commence à développer de nombreuses applications basées sur Boot. Par exemple pour la gestion et le suivi. Je peux suggérer de voir Spring Boot Admin

  2. Avec Spring Boot, vous pouvez bénéficier de fonctionnalités très intéressantes et utiles telles que l'actionneur et le shell distant pour la gestion et la surveillance, qui améliorent votre application avec des fonctionnalités prêtes pour la production qui sont très utiles.

  3. Propriétés et contrôles de configuration très intéressants et puissants - vous pouvez configurer votre application avec application.properties/yml et étendre le démarrage d'une manière très simple et impressionnante, même la gestion en termes de remplacement est très puissante.

  4. C'est l'une des premières plates-formes prêtes pour le micro-service, et à mon avis, c'est aujourd'hui la meilleure! Même si vous ne construisez pas de projet de micro-service avec démarrage, vous pouvez bénéficier d'une approche moderne dans laquelle vous disposez d'un pot auto-cohérent qui peut bénéficier de toutes les fonctionnalités que j'ai décrites ci-dessus ou si vous préférez, vous pouvez imposer le l'emballage comme une guerre classique et déployez votre guerre dans l'un des conteneurs que vous souhaitez.

  5. Utilisation d'une approche de configuration intelligente et conventionnelle qui réduit considérablement la phase de démarrage et de configuration de votre projet. En fait, vous disposez d'un ensemble de dépendances de démarrage Maven ou Gradle qui simplifient la gestion des dépendances. Ensuite, avec la caractéristique de configuration automatique, vous pouvez bénéficier de nombreuses configurations standard, qui sont introduites via le framework de configuration conditionnelle dans Spring 4. Vous pouvez la remplacer avec vos configurations spécifiques en définissant simplement votre bean selon la convention que vous pouvez voir dans le JAR de configuration automatique de la dépendance Boot. N'oubliez pas que Spring est open-source et que vous pouvez voir le code. De plus, la documentation à mon avis est bonne.

  6. Spring initializer est un outil sympa accessible via ce lien: https://start.spring.io/ est un outil très cool juste pour créer votre projet de manière très rapide.


J'espère que cette réflexion pourra vous aider à décider quelle est la meilleure solution.

Valerio Vaudi
la source
1
Merci pour la réponse. J'ai un peu de confusion ici. Je souhaite utiliser Spring 4 dans mon projet car je n'aurai pas besoin d'utiliser le persistence.xmlfichier de configuration et de nombreuses autres fonctionnalités. Puis-je avoir les fonctionnalités de Spring 4 dans Spring Boot? Si oui, comment faire ça
viper
2
J'aurais tendance à être d'accord si vous prévoyez de faire des choses assez vanillées. Le nombre de fois où j'ai essayé d'aller au démarrage me cause des maux de tête et me crie à l'écran parce que le démarrage essaie d'être trop intelligent sur les dépendances que j'ai et finit par devoir faire plus pour désactiver les choses que je ne le ferais pour les activer en utilisant un projet sans démarrage. Quelques choses qui finissent par être cauchemardesques sont d'essayer de travailler avec LDAP où un cache de base de données est nécessaire, ou de configurer plusieurs DataSource pour démarrer en essayant de créer JdbcTemplate et d'hiberner des instances sans que je le sache, et même de démarrer la base de données h3 par elle-même.
Brett Ryan
1
La configuration de la propriété est également quelque chose que je n'ai pas compris comment contrôler. Dans les projets sans démarrage, je créerais une classe AppConfig qui a surchargé la prise en charge de la lecture des propriétés dans le fichier de propriétés de mes applications que je peux utiliser dans JSP et SpEL mais je ne peux pas comprendre comment faire de même avec le démarrage.
Brett Ryan
1
Cette réponse est-elle toujours valable (six mois plus tard). Je veux dire que j'aime beaucoup Spring Boot, l'idée d'un logiciel intelligent qui se configure est vraiment géniale pour moi mais je suis très confus! encore une fois, pourquoi les gens utiliseraient-ils encore Spring, alors qu'ils ont l'impressionnant Spring Boot?
Ahmad Hajjar
1
@AhmadHajjar, pour un nouveau projet, j'irais définitivement avec Spring Boot. Actuellement, c'est un outil complètement mature. Mais gardez à l'esprit que les gens doivent toujours maintenir des projets Spring simples, certains d'entre eux pourraient être simples à passer à Boot et d'autres sont probablement si importants que le processus de migration serait compliqué.
Xtreme Biker
39

Spring Boot utilise Spring MVC! Il est simplement configuré automatiquement et prêt à être utilisé lorsque vous importez le fichier jar spring-boot-starter-web. Vous parlez donc essentiellement d'utiliser Spring Boot ou de configurer manuellement votre application Spring ...

Ulises
la source
4
Oui _ + 1, Spring Boot est juste un outil de configuration automatique, Spring mvc est un framework Web
Plain_Dude_Sleeping_Alone
@Plain_Dude_Sleeping_Alone Je comprends que Spring MVC est un framework. Vous dites que Spring Boot est juste un outil d'autoconfig, peut-il également être considéré comme un Framework?
Jesse
@Jesse, eh bien les deux peuvent être considérés comme des outils ou des frameworks. Mais ce que les gens soulignent ici, c'est que Spring Boot est plutôt un outil pour le framework Web Spring mvc. Il fournira une configuration prête nécessaire pour le mvc Spring, cependant, le butin lui-même est sous une forme de cadre. Enfin, mon anglais est si mauvais qu'il peut déjà vous brûler le visage. Hehe
Plain_Dude_Sleeping_Alone
24

Vous pouvez certainement opter pour Spring Boot. Nous avons déjà commencé à utiliser Spring Boot pour créer des applications d'entreprise. Il présente de nombreux avantages, en énumérant quelques-uns ci-dessous:

  1. La configuration de votre projet sera assez simple. Pas besoin de maintenir le fichier XML, tout ce que vous devez savoir est l'efficacité avec laquelle vous pouvez utiliser le fichier application.properties .

  2. Donne beaucoup d'implémentation par défaut, par exemple si vous devez envoyer un e-mail, il fournit une implémentation par défaut de JavaMailSender

  3. L'intégration de Spring Hibernate et JPA sera assez simple.

Comme ça, il y en a beaucoup que vous pouvez explorer en fonction de vos besoins.

Rakesh
la source
Merci beaucoup pour votre explication
Diego
Spring boot est toujours préférable car vous n'avez pas à gérer de XML verbeux et ils exploitent les architectures de micro-services
JorgeTovar
10

Vous pouvez utiliser Spring MVC avec spring boot comme l'a dit @kryger, ils ne sont pas exclusifs entre eux, et la configuration sera plus facile, je vous recommande également d'utiliser http://www.thymeleaf.org/ qui est un framework de modèle. Travailler avec cela revient à travailler avec JSP, mais thymeleaf s'intègre parfaitement avec HTML, de sorte que votre code aura l'air très propre et vous pourrez ajouter de nombreuses fonctionnalités utiles.

aruiz
la source
8

Je pense que Spring Boot est plus utile que le MVC, car il présente de nombreux avantages et des fonctionnalités intégrées qui le rendent plus fiable que MVC. Dans Spring Boot, la plupart des éléments sont configurés automatiquement et il n'est pas nécessaire d'écrire ces fichiers XML comme nous le faisons dans MVC, ce qui peut gagner du temps.

Spring Boot regroupe un fichier war avec un serveur d'exécution comme Tomcat. Cela permet une distribution et un déploiement faciles des applications Web. Alors que l'industrie évolue vers des déploiements basés sur des conteneurs, Spring Boot est également utile dans ce contexte.

Spring MVC est un framework d'application Web. Bien que vous puissiez tout faire au printemps sans Spring Boot, Spring Boot vous aide à faire les choses plus rapidement.

Spring boot simplifie vos dépendances Spring, plus de collisions de version, peut être exécuté directement à partir d'une ligne de commande sans conteneur d'application, construire plus avec moins de code - pas besoin de XML, pas même de web.xml, de configuration automatique, d'outils utiles pour l'exécution en production, initialisation de la base de données, fichiers de configuration spécifiques à l'environnement, collecte de métriques.

Les bases de Spring Boot peuvent être trouvées ici

Sanket
la source
Merci pour la réponse. Cela a été très utile pour comprendre la botte à ressort. Une chose qui me trouble, c'est que si je devais changer la version de printemps que j'utilise, comment ferais-je cela avec Spring Boot? Je ne vois nulle part où la version printemps est définie.
viper
Vous n'avez pas utilisé maven dans votre projet? @viper
erginduran
oui j'ai utilisé maven. mais en utilisant Spring Boot, je ne peux pas voir les dépendances de printemps là-bas.
vipère