Spring MVC oder Spring Boot [geschlossen]

114

Empfehlen Sie für ein großes Unternehmen (Web) -Projekt die Verwendung von Spring MVC oder Spring-Boot?

Spring-Boot ist in Bezug auf die Konfiguration im Vergleich zu Spring MVC sehr einfach.

Ich frage mich, ob ich Spring-Boot verwenden kann, um die gleichen Vorteile von Spring MVC zu haben.

Was empfehlen Sie?

Diego
quelle
29
Die Wahl liegt nicht zwischen MVC und Boot, da Boot MVC verwenden kann (und es automatisch konfiguriert) . Wenn Sie "Boot oder Boot-less?" Dann hängt es davon ab, wie offen Ihr Unternehmen für Innovationen (und die damit verbundenen Risiken) ist. So oder so, für die Empfehlung zu fragen ist Wegthema hier.
Kryger
Danke für Ihre Antwort. Ich erkannte, dass der Federschuh so konfiguriert werden kann, dass er mvc federt. Ich bin jedoch verwirrt, ob Spring-Boot oder Spring MVC verwendet werden sollen. Beide haben dieselben Eigenschaften (Spring Boot ist einfach einzurichten). Aus Ihrer Erfahrung, wie Sie verwenden?
Diego
1
Spring Boot Sparen Sie Zeit beim Konfigurieren einer Anwendung mit Standard-Beans und verwalten Sie auch die Abhängigkeiten. Aber Spring-Boot und Spring-MVC haben unterschiedliche Ziele. Wenn Sie Spring-Boot mit Spring-MVC verwenden möchten, können und müssen Sie nichts einrichten, es sei denn, Sie möchten die benutzerdefinierte Konfiguration überschreiben.
Eddú Meléndez
Danke für Ihre Antwort. Für mein zukünftiges Projekt wird Spring-Boot verwendet. Ich denke, Spring-Boot ist einfacher zu konfigurieren und spart viel Zeit.
Diego
2
Und Spring Boot ist nicht inkompatibel mit einer Kriegsverpackung und einem externen Servlet-Container, siehe 58.2 Verpackung von ausführbaren JAR- und Kriegsdateien
Nicolas Labrot

Antworten:

106

Mein persönlicher Rat ist, Spring Boot aus vielen Gründen definitiv zu verwenden.

  1. Das erste ist, dass Boot die "Zukunft des Frühlings" ist. Das bedeutet, dass Sie mit Boot von vielen Verpflichtungen der Spring-Community profitieren können. Die meisten der heutigen Spring-Projekte sind vollständig in Boot integriert, selbst die Community beginnt, viele Anwendungen auf Basis von Boot zu entwickeln. Zum Beispiel zur Verwaltung und Überwachung. Ich kann vorschlagen, Spring Boot Admin zu sehen

  2. Mit Spring Boot können Sie von sehr netten und nützlichen Funktionen wie Aktuator und Remote-Shell für die Verwaltung und Überwachung profitieren, die Ihre Anwendung mit produktionsbereiten Funktionen verbessern, die sehr nützlich sind.

  3. Sehr schöne und leistungsstarke Eigenschaften und Konfigurationssteuerelemente - Sie können Ihre Anwendung mit konfigurieren application.properties/yml und den Start auf sehr einfache und beeindruckende Weise erweitern, selbst die Verwaltung in Bezug auf das Überschreiben ist sehr leistungsfähig.

  4. Es ist eine der ersten Micro-Service-fähigen Plattformen und meiner Meinung nach heutzutage die beste! Selbst wenn Sie kein Micro-Service-Projekt mit Boot erstellen, können Sie von einem modernen Ansatz profitieren, bei dem Sie über ein automatisch konsistentes JAR verfügen, das von allen oben beschriebenen Funktionen profitieren kann, oder wenn Sie es vorziehen, können Sie das auferlegen Verpacken Sie als klassischer Krieg und setzen Sie Ihren Krieg in einem der Container ein, die Sie wollen.

  5. Verwendung eines intelligenten und konventionellen Konfigurationsansatzes, der die Start- und Konfigurationsphase Ihres Projekts erheblich reduziert. Tatsächlich haben Sie eine Reihe von Starter-Maven- oder Gradle-Abhängigkeiten, die das Abhängigkeitsmanagement vereinfachen. Mit der Auto-Konfigurations-Eigenschaft können Sie dann von vielen Standardkonfigurationen profitieren, die im Frühjahr 4 über das Framework für bedingte Konfiguration eingeführt werden. Sie können es mit Ihren spezifischen Konfigurationen überschreiben, indem Sie Ihre Bean gemäß der Konvention definieren, die Sie in sehen können Die automatisch konfigurierte JAR der Boot-Abhängigkeit. Denken Sie daran, dass Spring Open Source ist und Sie den Code sehen können. Auch die Dokumentation ist meiner Meinung nach gut.

  6. Spring Initialisierer ist ein cooles Tool, das über diesen Link erreichbar ist: https://start.spring.io/ ist ein sehr cooles Tool, um Ihr Projekt auf sehr schnelle Weise zu erstellen.


Ich hoffe, dass diese Überlegung Ihnen bei der Entscheidung helfen kann, welche Lösung die beste ist.

Valerio Vaudi
quelle
1
Danke für die Antwort. Ich habe hier ein wenig Verwirrung. Ich möchte Spring 4 in meinem Projekt verwenden, da ich keine persistence.xmlKonfigurationsdatei und viele andere Funktionen verwenden muss. Kann ich die Funktionen von Spring 4 im Spring Boot haben? Wenn ja, wie das geht
Viper
2
Ich würde eher zustimmen, wenn Sie vorhaben, Dinge ziemlich Vanille zu tun. Die Häufigkeit, mit der ich versucht habe, zum Booten zu gehen, verursacht Kopfschmerzen und ich schreie auf den Bildschirm, weil beim Booten versucht wird, zu klug zu sein, welche Abhängigkeiten ich habe, und am Ende mehr tun muss, um Dinge auszuschalten, als um Dinge einzuschalten Verwenden eines bootlosen Projekts. Ein paar Dinge, die zum Albtraum werden, sind der Versuch, mit LDAP zu arbeiten, wo ein Datenbank-Cache benötigt wird, oder die Konfiguration von mehr als einer DataSource hat einen Boot-Versuch, JdbcTemplate- und Hibernate-Instanzen zu erstellen, ohne dass ich es weiß, und sogar die h3-Datenbank selbst zu starten.
Brett Ryan
1
Die Konfiguration von Eigenschaften ist auch etwas, das ich nicht ausgearbeitet habe. In bootlosen Projekten würde ich eine AppConfig-Klasse erstellen, die die Unterstützung für das Lesen von Eigenschaften in meiner App-Eigenschaftendatei überladen hat, die ich in JSPs und SpEL verwenden kann, aber nicht herausfinden kann, wie ich dasselbe mit boot machen kann.
Brett Ryan
1
Ist diese Antwort noch gültig (sechs Monate später)? Ich prüfe dies und verstehe immer noch nicht, warum die Leute Spring immer noch verwenden, wenn sie den fantastischen Spring Boot haben. Ich meine, ich mag Spring Boot sehr, die Idee einer intelligenten Software, die sich selbst konfiguriert, ist für mich sehr beeindruckend, aber ich bin sehr verwirrt! wieder , warum würden die Leute verwenden immer noch Frühling, wenn sie die unglaublichen Frühling Stiefel haben?
Ahmad Hajjar
1
@ AhmadHajjar, für ein neues Projekt würde ich definitiv mit Spring Boot gehen. Derzeit ist es ein völlig ausgereiftes Tool. Aber denken Sie daran, dass die Leute immer noch einfache Spring-Projekte pflegen müssen. Einige von ihnen können direkt zu Boot wechseln, andere sind wahrscheinlich so groß, dass der Migrationsprozess zu einem Problem wird.
Xtreme Biker
39

Spring Boot verwendet Spring MVC! Es ist nur automatisch konfiguriert und einsatzbereit, wenn Sie das Spring-Boot-Starter-Web-Glas importieren. Sie würden also im Grunde darüber sprechen, ob Sie Spring Boot verwenden oder Ihre Spring-Anwendung manuell einrichten sollen ...

Ulises
quelle
4
Ja _ + 1, Spring Boot ist nur Autokonfigurationstool, Spring MVC ist Web-Framework
Plain_Dude_Sleeping_Alone
@Plain_Dude_Sleeping_Alone Ich verstehe, dass Spring MVC ein Framework ist. Sie sagen, Spring Boot ist nur ein Autokonfigurations-Tool. Kann es auch als Framework betrachtet werden?
Jesse
@ Jesse, beide können entweder als Tools oder als Frameworks betrachtet werden. Aber was die Leute hier einfühlen, ist, dass Spring Boot eher ein Werkzeug für das Spring MVC Web Framework ist. Es wird eine fertige Konfiguration bereitstellen, die für den Spring MVC erforderlich ist. Die Beute selbst befindet sich jedoch in einer Art Framework. Schließlich ist mein Englisch so schlecht, dass es bereits Ihr Gesicht verbrennen kann. Hehe
Plain_Dude_Sleeping_Alone
24

Sie können definitiv für Spring Boot gehen. Wir haben bereits damit begonnen, Spring Boot zum Erstellen von Unternehmensanwendungen zu verwenden. Es hat viele Vorteile und listet hier einige auf:

  1. Ihre Projektkonfiguration wird ziemlich einfach sein. Sie müssen keine XML-Datei verwalten. Sie müssen lediglich wissen, wie effizient Sie die Datei application.properties verwenden können.

  2. Gibt viel Standardimplementierung, zum Beispiel, wenn Sie eine E-Mail senden müssen, bietet es Standardimplementierung von JavaMailSender

  3. Die Integration von Spring Hibernate und JPA wird ziemlich einfach sein.

So gibt es viele, die Sie je nach Ihren Bedürfnissen erkunden können.

Rakesh
quelle
Vielen Dank für Ihre Erklärung
Diego
Spring Boot wird immer bevorzugt, da Sie sich nicht mit ausführlichem XML befassen müssen und sie
Mikrodienstarchitekturen
10

Sie können Spring MVC mit Spring Boot verwenden, wie @kryger sagte, sie sind nicht exklusiv zwischen ihnen und die Konfiguration wird einfacher. Ich empfehle Ihnen auch, http://www.thymeleaf.org/ zu verwenden, das Vorlagen-Framework. Das Arbeiten damit ist wie das Arbeiten mit JSP, aber thymeleaf lässt sich nahtlos in HTML integrieren, sodass Ihr Code sehr sauber aussieht und Sie viele nützliche Funktionen hinzufügen können.

aruiz
quelle
8

Ich denke, Spring Boot ist nützlicher als die MVC, da es viele Vorteile und integrierte Funktionen hat, die es zuverlässiger als die MVC machen. In Spring Boot werden die meisten Dinge automatisch konfiguriert und es ist nicht erforderlich, diese XML-Dateien wie in der MVC zu schreiben, was Zeit sparen kann.

Spring Boot bündelt eine War-Datei mit Server-Laufzeit wie Tomcat. Dies ermöglicht eine einfache Verteilung und Bereitstellung von Webanwendungen. Da sich die Branche in Richtung containergestützter Bereitstellungen bewegt, ist Spring Boot auch in diesem Zusammenhang nützlich.

Spring MVC ist ein Webanwendungsframework. Während Sie im Frühling alles ohne Spring Boot erledigen können, hilft Ihnen Spring Boot dabei, die Dinge schneller zu erledigen.

Spring Boot vereinfacht Ihre Spring-Abhängigkeiten, keine Versionskollisionen mehr, kann direkt von einer Befehlszeile ohne Anwendungscontainer ausgeführt werden, mehr mit weniger Code erstellen - kein XML erforderlich, nicht einmal web.xml, automatische Konfiguration, nützliche Tools zum Ausführen in der Produktion, Datenbankinitialisierung, umgebungsspezifische Konfigurationsdateien, Sammeln von Metriken.

Grundlagen zu Spring Boot finden Sie hier

Sanket
quelle
Danke für die Antwort. Es war sehr hilfreich für das Verständnis von Spring Boot. Eine Sache, über die ich verwirrt bin, ist, wenn ich die von mir verwendete Federversion ändern muss, wie würde ich das mit dem Federstiefel machen? Ich kann nirgendwo sehen, wo die Frühlingsversion definiert ist.
Viper
Haben Sie in Ihrem Projekt keinen Maven verwendet? @ Viper
Erginduran
Ja, ich habe Maven verwendet. Aber mit Spring Boot kann ich die Spring-Abhängigkeiten dort nicht sehen.
Viper