
Presentación de las principales secciones del curso y sus contenidos
Spring Tool Suite es una "customización" del IDE Eclipse para trabajar con proyectos Spring. Veamos como se instala.
Hay distintas maneras de comenzar un proyecto con Spring Boot, y una de ellas es usar el wizard de Spring Tool Suite. Veamos como funciona.
Para poder atender peticiones web necesitamos un componentes @Controller. En este video mostramos como crearlo y como arrancar y acceder a la aplicación.
En esta lección vamos a repasar los pasos que hemos seguido en esta primera sección y ampliar un poco algunos de los elementos que hemos visto.
Sin duda uno de los principales desarrollos en la programación de los últimos años. Su idea es extremadamente sencilla: hacer que un componente no vaya a buscar sus dependencias sino que estas le sean proporcionadas por el entorno. Pues bien: esta idea sencilla ha condicionado de forma radical casi todos los frameworks desde su aparición. Veamos en esta lección en que consiste.
Ahora que ya conocemos a nivel teórico en que consiste el dependency injection, veamos como se aplica en Spring
En las primera aplicaciones usando Dependency Injection es muy probable que caigamos en un error clásico: usar un componente desde el constructor. En esta lección explicaremos por que puede causar errores y cual es el recurso adecuado: @PostConstruct
Proyecto con ejercicio para comprobar los conceptos aprendidos
Instrucciones para importar y trabajar con los proyectos proporcionados en el curso
Como usar las pruebas unitarias para corregir los ejercicios propuestos
Demostración práctica de como usar el los conceptos explicados en las lecciones teóricas
Spring es un framework general con ya más de 10 años de éxito. Spring Boot es un proyecto que complementa a Spring haciéndolo más usable y potente.
En esta lección, antes de entrar en los detalles de Spring, vamos ha presentar la motivación detrás de la creación de Spring Boot y las ventajas que nos aporta.
Introducción a la anotación @Controller y a las anotaciones principales que la acompañan
Aspectos más avanzados en los métodos encontrados en un @Controller como control de los parámetros o los "path variables"
En las dos lecciones anteriores se han introducido muchos conceptos y muy importantes. Sería importante consolidarlos ahora haciendo un poco de práctica. Empezaremos "jugando" con el proyecto que tiene el código usado en las dos lecciones anteriores.
Y ahora un ejercicio.
Descarga el proyecto que tenéis como material adicional a esta clase y haced el ejercicio.
Cuando un cliente web solicita un recurso, este se puede presentar en muchos formatos diferentes (los casos más habituales son XML y JSON).
Antes de empezar a ver como gestionamos estos aspectos en Spring MVC, presentaremos brevemente como funciona este aspecto a nivel de HTTP
Continuación de la clase anterior, extendiendo el estudio a casos donde la negociación no termina con acuerdo.
Hemos visto como HTTP gestiona como se pueden usar distintos modos de representación de un recurso en la comunicación entre el cliente y el servidor.
En las dos siguientes lecciones veremos como Spring implementa el content negotiation.
Presentación de los recursos de Spring MVC para tratar el content negotiation
Ampliación de las posibilidades que nos ofrece Spring MVC sobre el formato de los recursos devueltos:
Presentación de las distintas estrategias disponibles a la hora de tratar las excepciones producidas.
Los controllers no siempre son los componentes más adecuados para construir la respuesta. En esta lección veremos como los views son mucho más adecuados si, por ejemplo, necesitamos construir una página HTML con parte de su contenido dinámico.
Demostración del funcionamiento de una vista (muy) básica. También añade, respecto a la presentación anterior :
Una vista sin datos dinámicos que mostrar no parece muy útil. El Model es el recurso que nos permite que el Controller pueda pasar datos al View de forma dinámica.
Ahora que ya sabemos como el @Controller puede pasar datos a la vista, veamos como podemos usarlos desde una plantilla thymeleaf
En esta lección presentaremos un problema que podemos tener según como implementemos los métodos POST y como usar el redirect puede evitarlo.
Cuando necesitamos presentar nuestras páginas en distintos idiomas hacemos uso de alguna técnica de internacionalización. Veamos que recursos nos ofrecen Spring MVC y Thymeleaf.
Antes de empezar a escribir código para proteger nuestra aplicación veamos algunos de los conceptos básicos para entender mejor su aplicación práctica
Una vez vistos los conceptos principales que se tratarán referentes a la seguridad, veamos como se aplican introduciendo el producto Spring Security y su integración con Spring Boot y Spring MVC.
La seguridad declarativa cumple con gran parte de los requisitos que encontramos en nuestras aplicaciones. Pero es muy habitual necesitar "afinar más" en casos concretos. En estos casos, necesitamos acceso vía API a información de seguridad para un método concreto.
Empezamos la sección discutiendo la necesidad de conocer el uso de Maven desde la línea de comandos. Se comenta también en que consiste el Maven Wrapper (mvnw).
Explicadas las motivaciones detrás del uso del terminal de comandos, veamos algunas de las acciones más habituales con Maven.
Ejemplo de como la configuración que definimos en el fichero pom.xml afecta al proceso de construcción.
Uno de los aspectos destacados de Spring Boot es su capacidad para generar aplicaciones contenidas en un solo jar. Estos jars, que incluyen todas las dependencias (y por su efecto en el tamaño se llaman "fat jars") requieren de un mecanismo que habilite su funcionamiento. En esta lección exploraremos el formato de estos ficheros y daremos algunos detalles de como es su ejecución.
Hasta ahora hemos ejecutado la aplicación desde el método main pero: ¿como podemos convertir esta aplicación en un war "tradicional"?
En esta lección veremos que cambios debemos hacer para ejecutar nuestra aplicación en un contenedor web y los motivos por detrás de estos cambios.
Junio 2022 * Actualizado a Java 17 *
Spring Boot ha sido una de las apariciones más disruptivas en el amplio portfolio de Spring.
Spring, desde sus comienzos, nos ofrece unos productos excelentemente diseñados. Entre ellos destaca Spring MVC, el framework de Spring para construir aplicaciones web. Es moderno, potente, elegante y muy solvente para usar aun con distintos paradigmas de programación web.
Pero, tradicionalmente, empezar una aplicación web desde cero requería mucho trabajo de configuración inicial. Esto, con Spring Boot ha cambiado.
Empezaremos el curso creando, desde 0, una primera aplicación en solo dos minutos. Y ello sin sacrificar la calidad de la infraestructura. Spring Boot no solo nos acelera de forma impresionante la configuración inicial sino que lo hace cumpliendo los requisitos más exigentes de las aplicaciones empresariales.
Tenemos, pues, un excelente tándem formado por Spring MVC y Spring Boot para construir aplicaciones web.
¿Y que vas a obtener de este curso?
Con este curso aprenderás los fundamentos de ambas tecnologías de forma rápida y asequible. Se explican los conceptos básicos tanto desde su vertiente teórica como su construcción práctica. Se cubren los distintos aspectos que encontraremos en las aplicaciones profesionales (respuestas JSON, XML, tratamiento de errores, uso de plantillas, seguridad ....) introduciéndolos de la forma más asequible posible.
En lugar de tener que navegar por multitud de recursos diferentes (manuales de Spring Boot, Spring MVC, Spring Security, Thymeleaf, etc ) que convierten el aprendizaje desde 0 en una tarea muy laboriosa, tendrás, en un solo lugar, un curso que te servirá para poner una base firme sobre la que apoyarse.
Planteamiento del curso
En el momento de diseñar el curso he tenido en mente un objetivo:
Proporcionar una introducción lo más amable posible a las aplicaciones Spring MVC con Spring Boot.
He tratados los temas que consideraba imprescindibles (seguridad, plantillas, excepciones, despliegue ...) pero siempre con la idea de un alumno que accede por primera vez a estas tecnologías.
Dicho esto: no es un curso que profundice completamente en cada una de las áreas tratadas. Es imposible hacerlo a no ser que fuese un curso de más de 500 horas.
Por tanto, no lo recomiendo a un alumno que ya sabe como construir aplicaciones con Spring MVC. Seguro que puede sacar algo útil, pero posiblemente no sea el curso que más le conviene.
Prepara pues tu entorno de desarrollo, y conecta el sonido. En poco tiempo vas a construir aplicaciones web en uno de los entornos más fascinantes de Java.