Acabo de empezar a aprender Spring. En mi próximo paso, me gustaría desarrollar aplicaciones web más grandes.
Ahora me pregunto si debería comenzar con Spring Boot o Spring MVC. Ya he leído algunas cosas, pero es confuso porque ambos se parecen.
Entonces, ¿cuáles son las diferencias entre los dos?
Spring Boot
luego cumplir con la funcionalidad webSpring MVC
?Spring MVC y Spring Boot están bien descritos en otras respuestas y, por lo tanto, sin repetir eso, permítanme saltar directamente a los detalles. Spring Boot y Spring MVC no son comparables ni se excluyen mutuamente. Si desea realizar el desarrollo de aplicaciones web con Spring, de todos modos usaría Spring MVC . Su pregunta se convierte en si usar Spring Boot o no.
Para desarrollar aplicaciones comunes de Spring o comenzar a aprender Spring, creo que se recomienda usar Spring Boot . Facilita considerablemente el trabajo, está listo para la producción y está siendo rápidamente adoptado ampliamente.
A veces he visto principiantes haciendo esta pregunta porque en STS (Spring Tool Suite) hay dos asistentes: uno para crear un proyecto Spring Boot y otro para crear un proyecto Spring MVC. Por lo tanto, mi recomendación sería crear un proyecto Spring Boot y elegir Web como módulo en eso.
fuente
Esta es una representación pictórica de mostrar la diferencia.
Consulte este enlace para obtener más información:
Src de esta imagen
fuente
En términos simples se puede expresar como:
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).
Y Spring Boot es un marco de opinión, por lo que su construcción tiene en cuenta el rápido desarrollo, la menor necesidad de tiempo para la configuración y un muy buen apoyo de la comunidad.
fuente
Spring MVC
es un subproyecto de Spring Framework, dirigido al diseño y desarrollo de aplicaciones que utilizan el patrón MVC (Modelo-Vista-Controlador). Spring MVC está diseñado para integrarse total y completamente con Spring Framework y transitivamente, la mayoría de los demás subproyectos.Spring Boot
puede entenderse bastante bien a partir de este artículo por el equipo de Spring Engineering. Supuestamente es obstinado, es decir, aboga fuertemente por un cierto estilo de desarrollo rápido, pero está diseñado lo suficientemente bien como para acomodar excepciones a la regla, si lo desea. En resumen, es una convención sobre la metodología de configuración que está dispuesta a comprender su necesidad de romper la convención cuando se justifique.fuente
Aquí hay algunos puntos principales que diferencian Spring, Spring MVC y Spring Boot:
Primavera :
Spring MVC
Arranque de primavera:
(Evolución como: Spring -> Spring MVC -> Spring Boot, por lo que la versión más nueva tiene la compatibilidad de las características de la versión anterior). Nota: No contiene todos los puntos.
fuente
SpringBoot en realidad está preconfigurado para reducir la configuración de la caldera y proporcionar la forma más fácil o rápida de iniciar su aplicación.
SpringBoot toma el dolor de cabeza de la configuración del desarrollador en sí mismo en lugar de Spring.
Implícitamente, SpringBoot se basa en el concepto de Spring Framework como bean, controlador, servicios, jpa, etc.
Puedes decir que SpringBoot es un envoltorio de Spring.
En SpringBoot, el puerto predeterminado del servidor es 8080, pero si desea cambiar, vaya a su application.properties y escriba
server.port = 8084
fuente
Con el arranque de primavera no necesitará construir la configuración. Esto se habrá hecho automáticamente cuando cree el proyecto.
Si usa Spring MVC necesita construir la configuración usted mismo. Es más complicado, pero es crucial.
fuente
Sin repetir lo mismo en respuestas anteriores,
estoy escribiendo esta respuesta para las personas que buscan comenzar un nuevo proyecto y no saben cuál es el mejor marco para iniciar su proyecto. Si eres un principiante en este marco, lo mejor que prefiero es usar Spring Boot (con STS / Spring Tool Suite ). Porque ayuda mucho. Hace todas las configuraciones por sí solo. Además, use Hibernate con spring-boot como marco de la base de datos. Con esta combinación, su aplicación será la mejor. Puedo garantizar eso con mis experiencias.
Incluso este es uno de los mejores marcos para JEE (en el presente), esto va a morir en el futuro cercano. Hay alternativas livianas por venir. Así que manténgase actualizado con su experiencia, no se adhiera a un marco particular. Lo mejor es tener fluidez en los conceptos, no en los marcos.
fuente
Piensa de esta manera:
Spring MVC es un marco basado en web para implementar la arquitectura MVC.
Spring Boot es una herramienta orientada al programador. El programador debe centrarse en la programación y la herramienta debe centrarse en las configuraciones. Por lo tanto, no necesitamos perder nuestro tiempo configurando un montón de xml para crear un simple 'Hola mundo'.
fuente
Las siguientes son las diferencias entre Spring boot y Spring MVC.
fuente
Spring MVC y Spring Boot existen para diferentes propósitos. Por lo tanto, no es aconsejable compararse entre sí como competidores.
¿Qué es Spring Boot?
Spring Boot es un marco para empaquetar la aplicación de primavera con valores predeterminados razonables. ¿Qué significa esto?. Está desarrollando una aplicación web con Spring MVC, Spring Data, Hibernate y Tomcat. ¿Cómo empaqueta e implementa esta aplicación en su servidor web? A partir de ahora, tenemos que escribir manualmente las configuraciones, archivos XML, etc. para implementar en el servidor web.
Spring Boot lo hace por usted con la configuración de XML cero en su proyecto. Créame, no necesita un descriptor de implementación, un servidor web, etc. Spring Boot es un marco mágico que agrupa todas las dependencias por usted. Finalmente, su aplicación web será un archivo JAR independiente con servidores integrados.
Si todavía está confundido acerca de cómo funciona esto, lea sobre el desarrollo del marco de microservicios utilizando Spring Boot.
¿Qué es Spring MVC?
Es un marco de aplicación web tradicional que le ayuda a crear aplicaciones web. Es similar al marco Struts.
Un Spring MVC es un marco de Java que se utiliza para crear aplicaciones web. Sigue el patrón de diseño Modelo-Vista-Controlador. Implementa todas las características básicas de un marco de resorte central como Inversion of Control, Dependency Injection.
Un Spring MVC proporciona una solución elegante para usar MVC en Spring Framework con la ayuda de DispatcherServlet. Aquí, DispatcherServlet es una clase que recibe la solicitud entrante y la asigna al recurso correcto, como controladores, modelos y vistas.
Espero que esto te ayude a entender la diferencia.
fuente