Spring MVC o Spring Boot [chiuso]


114

Per un progetto (web) di una grande azienda, consigli di utilizzare Spring MVC o Spring-Boot?

Spring-Boot, in termini di configurazione, è molto semplice rispetto a Spring MVC.

Mi chiedo se uso Spring-Boot può avere gli stessi vantaggi di Spring MVC?

Che cosa mi consiglia?


29
La scelta non è tra MVC e Boot perché Boot può utilizzare MVC (e autoconfigurarlo) . Se intendi "Boot o Boot-less?" poi dipende da quanto è aperta all'innovazione (e ai rischi associati) la tua azienda. In ogni caso, chiedere consigli qui è fuori tema .
kryger

Grazie per la vostra risposta. Mi sono reso conto che lo spring boot può essere configurato per spring mvc. Ma sono confuso se usare Spring-Boot o Spring MVC hanno entrambe le stesse caratteristiche (Spring boot facile da configurare). Dalla tua esperienza come usi?
Diego

1
Spring boot consente di risparmiare tempo per configurare un'applicazione con bean predefiniti e gestire anche le dipendenze. Ma lo spring-boot e lo spring-mvc hanno obiettivi diversi. Se vuoi usare spring-boot con spring-mvc puoi farlo e non hai bisogno di impostare nulla a meno che tu non voglia sovrascrivere la configurazione personalizzata.
Eddú Meléndez

Grazie per la vostra risposta. Per il mio progetto futuro userò Spring -Boot. Penso che Spring -Boot sia più facile da configurare e faccia risparmiare molto tempo.
Diego

2
E lo spring boot non è incompatibile con un war packaging e un servlet container esterno, vedi 58.2 Packaging eseguibile jar e war files
Nicolas Labrot

Risposte:


106

Il mio consiglio personale è di usare definitivamente Spring Boot per molte ragioni.

  1. Il primo è che Boot è il "futuro della primavera". Ciò significa che con Boot puoi beneficiare di molti impegni della comunità Spring. La maggior parte dei progetti Spring oggi sono completamente integrati con Boot, anche la comunità inizia a sviluppare molte applicazioni basate su Boot. Ad esempio per la gestione e il monitoraggio. Posso suggerire di vedere Spring Boot Admin

  2. Con Spring Boot puoi beneficiare di funzionalità molto belle e utili come l'attuatore e la shell remota per la gestione e il monitoraggio, che migliora la tua applicazione con funzionalità pronte per la produzione che sono molto utili.

  3. Proprietà e controlli di configurazione molto belli e potenti: puoi configurare la tua applicazione application.properties/yml ed estendere l'avvio in un modo molto semplice e impressionante, anche la gestione in termini di override è molto potente.

  4. È una delle prime piattaforme pronte per micro-servizi e secondo me oggi è la migliore! Anche se non costruisci un progetto di micro-servizio con boot puoi trarre vantaggio dall'utilizzo di un approccio moderno in cui hai un jar auto-consistente che può beneficiare di tutte le funzionalità che ho descritto sopra o se preferisci puoi imporre il imballare come una guerra classica e schierare la tua guerra in uno dei contenitori che desideri.

  5. Utilizzo di un approccio intelligente e convenzionale rispetto alla configurazione che riduce notevolmente la fase di avvio e configurazione del progetto. In effetti hai una serie di dipendenze iniziali Maven o Gradle che semplificano la gestione delle dipendenze. Quindi con la caratteristica di configurazione automatica puoi beneficiare di molte configurazioni standard, che vengono introdotte attraverso il framework di configurazione condizionale nella primavera 4. Puoi sovrascriverlo con le tue configurazioni specifiche semplicemente definendo il tuo bean secondo la convenzione che puoi vedere in il JAR di configurazione automatica della dipendenza Boot. Ricorda che Spring è open source e puoi vedere il codice. Anche la documentazione secondo me è buona.

  6. Spring Initializer è uno strumento interessante raggiungibile a questo link: https://start.spring.io/ è uno strumento molto interessante solo per creare il tuo progetto in modo molto veloce.


Spero che questa riflessione possa aiutarti a decidere qual è la soluzione migliore.


1
Grazie per la risposta. Ho un po 'di confusione qui. Voglio usare Spring 4 nel mio progetto perché non dovrò usare il persistence.xmlfile di configurazione e molte altre funzionalità. Posso avere le funzionalità di Spring 4 in Spring Boot? Se sì, come farlo
viper

2
Tenderei ad essere d'accordo se hai intenzione di fare cose piuttosto vanigliate. La quantità di volte che ho tentato di avviare l'avvio causa mal di testa e io urlo contro lo schermo perché l'avvio cerca di essere troppo intelligente riguardo alle dipendenze che ho e finisco per dover fare di più per spegnere le cose di quanto farei per accenderle utilizzando un progetto senza avvio. Un paio di cose che finiscono per creare un incubo sono provare a lavorare con LDAP in cui è necessaria una cache db o configurare più di una DataSource ha l'avvio cercando di creare JdbcTemplate e ibernare istanze senza che io lo sappia, e persino avviare il database h3 da solo.
Brett Ryan

1
Anche la configurazione delle proprietà è qualcosa che non ho capito come controllare. Nei progetti senza avvio creerei una classe AppConfig che ha un supporto sovraccarico per la lettura delle proprietà nel file delle proprietà delle mie app che posso usare in JSP e SpEL ma non riesco a capire come fare lo stesso con l'avvio.
Brett Ryan

1
Questa risposta è ancora valida (sei mesi dopo) Sto esaminando questo, e ancora non capisco perché le persone dovrebbero ancora usare Spring, quando hanno il fantastico Spring Boot? Voglio dire, mi piace molto Spring Boot, l'idea di un software intelligente che si configura da solo è davvero fantastica per me, ma sono molto confuso! ancora una volta perché le persone dovrebbero ancora usare Spring, quando hanno il fantastico Spring Boot?
Ahmad Hajjar

1
@AhmadHajjar, per un nuovo progetto andrei sicuramente con Spring Boot. Attualmente è uno strumento completamente maturo. Ma tieni presente che le persone devono ancora mantenere semplici progetti Spring, alcuni di loro potrebbero essere diretti a passare a Boot e altri probabilmente sono così grandi che renderebbero il processo di migrazione un dolore.
Xtreme Biker

39

Spring Boot utilizza Spring MVC! È solo autoconfigurato e pronto per l'uso quando si importa il jar web spring-boot-starter. Quindi fondamentalmente stai parlando se usare Spring Boot o configurare manualmente la tua applicazione Spring ...


4
Sì _ + 1, Spring boot è solo uno strumento di autoconfigurazione, Spring mvc è un framework web
Plain_Dude_Sleeping_Alone

@Plain_Dude_Sleeping_Alone Capisco che Spring MVC è un framework. Dici che Spring Boot è solo uno strumento di autoconfig, può anche essere considerato un Framework?
Jesse

@ Jesse, beh, entrambi possono essere considerati strumenti o framework. Ma ciò che le persone enfatizzano qui è che lo spring boot è piuttosto uno strumento per il framework web Spring mvc. Fornirà una configurazione pronta necessaria per Spring mvc, tuttavia, il bottino stesso è in una forma di framework. Infine, il mio inglese è così pessimo che potrebbe già bruciarti la faccia. Hehe
Plain_Dude_Sleeping_Alone

24

Puoi sicuramente scegliere Spring Boot. Abbiamo già iniziato a utilizzare Spring Boot per la creazione di applicazioni aziendali. Ha molti vantaggi, elencandone alcuni di seguito:

  1. La configurazione del tuo progetto sarà piuttosto semplice. Non è necessario mantenere il file XML, tutto ciò che devi sapere è quanto efficientemente puoi utilizzare il file application.properties .

  2. Fornisce molte implementazioni predefinite, ad esempio se è necessario inviare un'e-mail, fornisce un'implementazione predefinita di JavaMailSender

  3. L'integrazione di Spring Hibernate e JPA sarà piuttosto semplice.

In questo modo ce ne sono molti, puoi esplorare in base alle tue esigenze.


Grazie mille per la tua spiegazione
Diego

Lo Spring Boot è sempre preferito perché non devi avere a che fare con XML
prolisso

10

Puoi usare Spring MVC con lo spring boot come ha detto @kryger, non sono esclusivi tra di loro e la configurazione sarà più semplice, inoltre ti consiglio di usare http://www.thymeleaf.org/ che è il framework dei modelli. Lavorare con questo è come lavorare con JSP, ma thymeleaf si integra perfettamente con HTML, quindi il tuo codice apparirà molto pulito e potrai aggiungere molte funzioni utili.


8

Penso che Spring Boot sia più utile dell'MVC, in quanto ha molti vantaggi e caratteristiche integrate che lo rendono più affidabile di MVC. In Spring Boot la maggior parte delle cose sono configurate automaticamente e non è necessario scrivere quelle xml come facciamo in MVC, il che può far risparmiare tempo.

Spring Boot raggruppa un file war con runtime del server come Tomcat. Ciò consente una facile distribuzione e implementazione delle applicazioni web. Poiché il settore si sta muovendo verso distribuzioni basate su container, Spring Boot è utile anche in questo contesto.

Spring MVC è un framework per applicazioni web. Anche se puoi fare tutto in primavera senza Spring Boot, Spring Boot ti aiuta a fare le cose più velocemente.

Spring boot semplifica le tue dipendenze Spring, niente più collisioni di versione, può essere eseguito direttamente da una riga di comando senza un contenitore di applicazioni, crea di più con meno codice - non c'è bisogno di XML, nemmeno web.xml, configurazione automatica, strumenti utili per l'esecuzione in produzione, inizializzazione del database, file di configurazione specifici dell'ambiente, raccolta di metriche.

Le basi di Spring Boot possono essere trovate qui


Grazie per la risposta. È stato molto utile per capire lo stivale primaverile. Una cosa di cui sono confuso è che se dovessi cambiare la versione a molla che sto usando, come lo farei con lo stivale a molla? Non riesco a vedere da nessuna parte dove sia definita la versione primaverile.
Viper

Non hai usato Maven nel tuo progetto? @viper
erginduran

si ho usato Maven. ma usando l'avvio a molla, non riesco a vedere le dipendenze di primavera lì.
viper
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.