Spring MVC o Spring Boot [cerrado]

114

Para un proyecto de empresa grande (web), ¿recomienda usar Spring MVC o Spring-Boot?

Spring-Boot, en términos de configuración, es muy fácil en comparación con Spring MVC.

Me pregunto si uso Spring-Boot puede tener las mismas ventajas que Spring MVC.

¿Que recomiendas?

Diego
fuente
29
La elección no está entre MVC y Boot porque Boot puede usar MVC (y autoconfigurarlo) . Si te refieres a "¿Arranque o sin Arranque?" entonces depende de qué tan abierta a la innovación (y los riesgos asociados) esté su empresa. De cualquier manera, pedir una recomendación está fuera de tema aquí.
kryger
Gracias por su respuesta. Me di cuenta de que Spring Boot se puede configurar para Spring MVC. Pero estoy confundido si usar Spring-Boot o Spring MVC, ambos tienen las mismas características (Spring boot es fácil de configurar). ¿De tu experiencia mientras usas?
Diego
1
Spring boot le ahorra tiempo para configurar una aplicación que tiene beans predeterminados y también administra las dependencias. Pero spring-boot y spring-mvc tienen diferentes objetivos. Si desea utilizar spring-boot con spring-mvc, puede hacerlo y no necesita configurar nada a menos que desee anular la configuración personalizada.
Eddú Meléndez
Gracias por su respuesta. Para mi proyecto futuro usaré Spring -Boot. Creo que Spring -Boot es más fácil de configurar y ahorra mucho tiempo.
Diego
2
Y el arranque de primavera no es incompatible con un paquete de guerra y un contenedor de servlet externo, consulte 58.2 Empaquetado de archivos ejecutables jar y war
Nicolas Labrot

Respuestas:

106

Mi consejo personal es definitivamente usar Spring Boot por muchas razones.

  1. La primera es que Boot es el "futuro de la primavera". Eso significa que con Boot puedes beneficiarte de muchos compromisos de la comunidad Spring. La mayoría de los proyectos Spring de hoy están completamente integrados con Boot, incluso la comunidad comienza a desarrollar muchas aplicaciones basadas en Boot. Por ejemplo para la gestión y el seguimiento. Puedo sugerir ver Spring Boot Admin

  2. Con Spring Boot, puede beneficiarse de características muy agradables y útiles, como el actuador y la carcasa remota para administrar y monitorear, que mejoran su aplicación con características listas para producción que son muy útiles.

  3. Propiedades y controles de configuración muy agradables y potentes: puede configurar su aplicación application.properties/yml y extender el arranque de una manera muy simple e impresionante, incluso la gestión en términos de anulación es muy poderosa.

  4. Es una de las primeras plataformas listas para microservicios y, en mi opinión, hoy en día es la mejor. Incluso si no construye un proyecto de microservicio con arranque, puede beneficiarse del uso de un enfoque moderno en el que tiene un jar autoconsistente que puede beneficiarse de todas las características que describí anteriormente o, si lo prefiere, puede imponer el empaquetar como una guerra clásica y desplegar su guerra en cualquiera de los contenedores que desee.

  5. Uso de un enfoque inteligente y de convención sobre la configuración que reduce significativamente la fase de inicio y configuración de su proyecto. De hecho, tiene un conjunto de dependencias iniciales de Maven o Gradle que simplifican la gestión de dependencias. Luego, con la característica de configuración automática, puede beneficiarse de una gran cantidad de configuraciones estándar, que se introducen a través del marco de configuración condicional en Spring 4. Puede anularlo con sus configuraciones específicas simplemente definiendo su bean de acuerdo con la convención que puede ver en el JAR de configuración automática de la dependencia de arranque. Recuerda que Spring es de código abierto y puedes ver el código. También la documentación en mi opinión es buena.

  6. Spring initializer es una herramienta genial que se puede obtener en este enlace: https://start.spring.io/ es una herramienta genial solo para crear su proyecto de una manera muy rápida.


Espero que esta reflexión pueda ayudarte a decidir cuál es la mejor solución.

Valerio Vaudi
fuente
1
Gracias por la respuesta. Tengo un poco de confusión aquí. Quiero usar Spring 4 en mi proyecto ya que no tendré que usar el persistence.xmlarchivo de configuración y muchas otras características. ¿Puedo tener las características de Spring 4 en Spring Boot? Si es así, cómo hacerlo
víbora
2
Tiendo a estar de acuerdo si planeas hacer las cosas bastante simples. La cantidad de veces que he intentado arrancar me causa dolor de cabeza y me grita en la pantalla porque el arranque trata de ser demasiado inteligente sobre las dependencias que tengo y termino teniendo que hacer más para apagar las cosas que para encenderlas. usando un proyecto sin botas. Un par de cosas que terminan siendo una pesadilla es tratar de trabajar con LDAP donde se necesita una caché de base de datos, o configurar más de un DataSource que arranca tratando de crear JdbcTemplate e hibernar instancias sin que yo lo sepa, e incluso iniciando la base de datos h3 por sí mismo.
Brett Ryan
1
La configuración de propiedades también es algo que no he descubierto cómo controlar. En proyectos sin arranque, crearía una clase AppConfig que tiene soporte sobrecargado para leer propiedades en el archivo de propiedades de mi aplicación que puedo usar en JSP y SpEL, pero no puedo averiguar cómo hacer lo mismo con boot.
Brett Ryan
1
¿Esta respuesta sigue siendo válida (seis meses después)? Estoy investigando esto, y todavía no entiendo por qué la gente todavía usa Spring, cuando tienen el increíble Spring Boot? Quiero decir que me gusta mucho Spring Boot, la idea de un software inteligente que se configura a sí mismo es muy impresionante para mí, ¡pero estoy muy confundido! de nuevo, ¿por qué la gente seguiría usando Spring, cuando tienen la increíble Spring Boot?
Ahmad Hajjar
1
@AhmadHajjar, para un nuevo proyecto definitivamente iría con Spring Boot. Actualmente es una herramienta completamente madura. Pero tenga en cuenta que las personas aún necesitan mantener proyectos simples de Spring, algunos de ellos pueden ser sencillos de migrar a Boot y otros probablemente son tan grandes que harían que el proceso de migración sea un problema.
Xtreme Biker
39

Spring Boot usa Spring MVC! Simplemente se configura automáticamente y está listo para usar cuando importa el archivo jar spring-boot-starter-web. Entonces, básicamente, estaría hablando de si usar Spring Boot o configurar manualmente su aplicación Spring ...

Ulises
fuente
4
Sí _ + 1, Spring boot es solo una herramienta de configuración automática, Spring mvc es un marco web
Plain_Dude_Sleeping_Alone
@Plain_Dude_Sleeping_Alone Entiendo que Spring MVC es un marco. Dices que Spring Boot es solo una herramienta de configuración automática, ¿también se puede considerar como un marco?
Jesse
@Jesse, bueno, ambos pueden considerarse herramientas o marcos. Pero lo que la gente enfatiza aquí es que Spring Boot es más bien una herramienta para el marco web Spring mvc. Proporcionará una configuración lista necesaria para Spring mvc, sin embargo, el botín en sí está en una forma de marco. Finalmente, mi inglés es tan malo que puede que ya te queme la cara. Jeje
Plain_Dude_Sleeping_Alone
24

Definitivamente puedes optar por Spring Boot. Ya comenzamos a usar Spring Boot para crear aplicaciones empresariales. Tiene muchas ventajas, enumerando algunas a continuación aquí:

  1. La configuración de su proyecto será bastante simple. No es necesario mantener un archivo XML, todo lo que necesita saber es qué tan eficientemente puede usar el archivo application.properties .

  2. Ofrece una gran cantidad de implementación predeterminada, por ejemplo, si necesita enviar un correo electrónico, proporciona una implementación predeterminada de JavaMailSender

  3. La integración de Spring Hibernate y JPA será bastante simple.

Así, hay muchos, puedes explorar en función de tus necesidades.

Rakesh
fuente
Muchas gracias por tu explicación
Diego
Spring boot siempre es el preferido porque no tiene que lidiar con XML detallado y aprovechan las arquitecturas de
microservicios
10

Puede usar Spring MVC con Spring Boot como dijo @kryger, no son exclusivos entre ellos, y la configuración será más fácil, también le recomiendo que use http://www.thymeleaf.org/ que es un marco de plantilla. Trabajar con eso es como trabajar con JSP, pero thymeleaf se integra perfectamente con HTML, por lo que su código se verá muy limpio y puede agregar muchas características útiles.

aruiz
fuente
8

Creo que Spring Boot es más útil que MVC, ya que tiene muchas ventajas y características incorporadas que lo hacen más confiable que MVC. En Spring Boot, la mayoría de las cosas se configuran automáticamente y no es necesario escribir esos xml como lo hacemos en MVC, lo que puede ahorrar tiempo.

Spring Boot incluye un archivo war con tiempo de ejecución del servidor como Tomcat. Esto permite una fácil distribución e implementación de aplicaciones web. A medida que la industria avanza hacia implementaciones basadas en contenedores, Spring Boot también es útil en este contexto.

Spring MVC es un marco de aplicación web. Si bien puede hacer todo en Spring sin Spring Boot, Spring Boot lo ayuda a hacer las cosas más rápido.

Spring Boot simplifica sus dependencias de Spring, no más colisiones de versiones, se puede ejecutar directamente desde una línea de comandos sin un contenedor de aplicaciones, compila más con menos código, sin necesidad de XML, ni siquiera web.xml, configuración automática, herramientas útiles para ejecutar en producción, inicialización de la base de datos, archivos de configuración específicos del entorno, recopilación de métricas.

Los conceptos básicos de Spring Boot se pueden encontrar aquí

Sanket
fuente
Gracias por la respuesta. Fue muy útil para comprender el arranque de primavera. Una cosa sobre la que estoy confundido es, si tengo que cambiar la versión de primavera que estoy usando, ¿cómo lo haría con el arranque de primavera? No puedo ver en ningún lugar donde se define la versión de primavera.
víbora
¿No usaste maven en tu proyecto? @viper
erginduran
sí, he usado maven. pero usando Spring Boot, no puedo ver las dependencias de Spring allí.
víbora