Parece que Spring 5 se está alejando de la aplicación web convencional, ya que sus tutoriales para aplicaciones web siguen usando Spring Boot. ¿Por qué?

Me sorprendió lo mismo. Hice un curso en primavera (que ahora está un poco desactualizado, aunque no lo suficiente como para ser inútil). Entonces decidí hacer un curso de primavera completamente nuevo, y como la gente me preguntaba sobre Spring Boot, pensé que lo haría.

Tan pronto como comencé a usar Spring Boot, quedó claro por qué es mucho mejor que Spring sin Spring Boot.

Spring Boot suena como algo realmente diferente a Spring MVC, pero en realidad es exactamente lo mismo pero con valores predeterminados preconfigurados que puede usar o no, tal como lo desee.

Spring Boot todavía te ofrece una aplicación web convencional. Todo lo que Spring Boot realmente hace, en última instancia, es configurar un montón de valores predeterminados.

Sin Spring Boot, descubrir qué dependencias necesita para una aplicación web Spring es una pesadilla. Debes asegurarte de que estás utilizando versiones compatibles de todo, y deben ser compatibles con tu versión de Java y la versión de tu servidor. Configurar el registro y REST puede ser particularmente desagradable. También puede perder fácilmente una dependencia o usar la versión incorrecta de algo, o incluso la jarra incorrecta por completo.

Si intenta ir a la vieja escuela y realmente descarga estos frascos en lugar de usarlos, por ejemplo, Maven, será mejor que reserve un día para rastrear frascos.

Con Spring Boot, es casi trivialmente fácil en comparación. El proyecto Spring Boot mantiene una lista de dependencias que son compatibles entre sí, cubriendo casi todo lo que es probable que desee utilizar que posiblemente pueda causar un problema. Si usa Maven (sin duda es lo mismo con Gradle), puede perder los números de versión para sus dependencias, porque el Spring Boot pom.xml principal los especificará por usted. Si desea diferentes versiones, puede anular fácilmente los valores predeterminados.

Sin Spring Boot, debe configurar su servlet de despachador, ver resolvers, etc. Con Spring Boot, el servlet de despachador se maneja por usted y configurar resolvers es fácil.

Además de eso, si bien puede implementar su aplicación como un archivo .war normal en un servidor existente, también tiene la opción de ejecutarlo como un war o jar ejecutable, que contiene su propio servidor incorporado listo para producción, eligiendo uno de varios. Eso significa que puede desarrollar una aplicación web Spring sin instalar un servidor, ejecutarla como un programa Java normal, y tiene una aplicación web y un servidor todo en uno, y está listo para su uso en producción, para ser instalado como un servicio del sistema o como quieras. Pero también puede usarlo como un archivo .war normal si no lo desea.

Agregar soporte de Hibernate también es muy fácil. Si usa Spring Data JPA también, incluso podría casi olvidar que está usando Hibernate.

Puede configurar todo esto usted mismo, pero viene casi de fábrica con Spring Boot. Unas pocas entradas de configuración y unos pocos clics en su IDE, o la adición de unas pocas líneas en su archivo de compilación, y estará ausente.

Si no desea usar algo que proporciona Spring Boot, simplemente no puede usarlo. Al final, tienes una aplicación web Spring normal, pero Spring Boot ha proporcionado un montón de valores predeterminados que de lo contrario tendrías que configurar manualmente.

Mis cursos utilizan principalmente JSP viejos y buenos, porque todavía son muy populares. No es nada difícil hacer que Spring Boot funcione con JSP, incluso en un archivo ejecutable .war o .jar, aunque Spring Boot intenta guiarte un poco hacia Thymeleaf, pero eso es porque Thymeleaf, aunque no parece ser tan ampliamente utilizado como los JSP todavía, representa una mejora significativa sobre los JSP.

En resumen, la única razón por la que puedo ver que no te gustaría usar Spring Boot es si tienes que lidiar con las aplicaciones de Spring heredadas o si quieres una configuración muy inusual. Spring Boot no proporciona nada que deba usar si no lo desea (ni siquiera el servidor integrado), y nada que deba formar parte de su aplicación si no desea que lo sea.

Para ahorrar tiempo a los desarrolladores de hacer toda la configuración estándar.

Para cualquier ingeniero, especialmente un chico joven, se vuelve agitado encontrar las versiones de dependencia correctas, la compatibilidad entre diferentes versiones de dependencia, la configuración de los respectivos beans, la configuración para diferentes entornos, etc. Estas tareas requieren una cantidad considerable de tiempo para iniciar cualquier desarrollo o creación de prototipos. Para abordar todos estos problemas, el equipo de Spring ideó el arranque de Spring.

Spring boot proporciona toda la configuración fuera de la caja. Basado en las dependencias encontradas en el classpath, calcula los beans de configuración que se crearán. Por ejemplo, agregue el jar spring-data-jpa al pom.xml o build.gradle. Descubrirá toda la configuración estándar para ello. No tendrá que concentrarse en estas configuraciones de toma de tiempo. Hasta que quieras personalizarlo. Todavía puede personalizar gran parte de la configuración en el archivo application.properties. Mira este enlace. Concéntrese de inmediato en el problema comercial que está tratando de resolver.

Desde Servlet 3, la configuración web.xml se puede especificar en una clase Java. El equipo de primavera también se había movido en la misma dirección y permitió que se mencionara toda la configuración en las clases de Java. Eso permite que la configuración sea consistente. Todavía puede usar la configuración xml, pero las clases Java son más preferidas hoy en día.

El arranque de primavera también permite la creación rápida de prototipos. Enviar un tarro gordo que tenga todas las dependencias necesarias para ejecutarlo sin ninguna configuración. El complemento maven tomcat agrupa el tomcat en el paquete de compilación. Por lo tanto, el usuario final o desarrollador puede ejecutarlo desde la línea de comandos utilizando el comando java jar. Lo hace realmente sin esfuerzo. Las imágenes tienen que compartir el prototipo con un cliente. 🙂

Implementaciones en caliente con las herramientas de desarrollo de arranque de primavera. Reflejando cambios sobre la marcha. ¿No es maravilloso? Ahorra mucho tiempo y puede realizar cambios rápidamente sin preocuparse por implementar la compilación una y otra vez manualmente.

¡Hay mucho más! Creo que esto debería ser suficiente.

“Spring Boot” se puede usar muy bien para aplicaciones web convencionales. Realmente es Spring normal con valores predeterminados preconfigurados y algunas adiciones convenientes en la parte superior (como tener un servidor web incorporado listo para usar).

Entonces, aunque podrían “empujar” Spring Boot en su sitio web, ciertamente no se están alejando de las aplicaciones web.

Debido a que los desarrolladores de Java de hoy en día son vagos: piensan que si funciona, entonces no es necesario saber ni controlar cómo funciona. Imagínese si no supiera nada (cómo configurar un grupo de bases de datos / subprocesos, configurar servlets y filtros, etc.) y hubiera un botón mágico que hace todo por usted y comienza a funcionar. ¿No te sentirías tentado a presionarlo? Mucha gente lo haría.

Los desarrolladores de hoy están más preocupados por la rapidez con que pueden escribir código en lugar de lo fácil que es leerlo o solucionarlo. Si una lib / tecnología es popular se determina qué tan rápido se puede adoptar y qué tan brillante se ve en lugar de cuán útil es en la fase de producción profunda. En esa fase, muchos desarrolladores simplemente huyen a otra empresa / proyecto porque se hace demasiado difícil mantener el proyecto. El proyecto que ahora está sobrecargado con basura “moderna”.