Bienvenidos a la sección de Spring Framework 5 con Springwood 2.
Si vamos a utilizar Springwood porque es lo que más está llegando hoy en día en el mercado para trabajar
con Spring Framework 5.
Bueno, muchos me preguntan cuál es la diferencia entre Spring Framework y Spring.
Bueno, todo lo que desarrollar es decir escribir código.
El framework en sí es lo mismo, no cambiar nada.
Ese mismo código que tenemos que escribir, por ejemplo, mismo controladores que vamos a implementar,
misma lógica negocio, misma integración con Internet o JPA, en fin.
Pero lo que cambia y lo hace muy poderoso, trabaja con Springwood y por esto también lo píen bastante
en las empresas y en la industria en general.
Es que viene con un set, un conjunto de configuraciones automáticas.
Por defecto no tenemos que tocar nada.
Por ejemplo, no tenemos que configurar nuestras vistas.
Taine LIF viene por defecto.
Si queremos trabajar con JSP también una configuración mínima tampoco.
No tenemos que configurar nada de persistencia si queremos trabajar con JPA, incluso lo podemos implementar.
Trabajar con JPA con una base dato por defecto, en memoria con H2.
En fin, son muchas las características de Spring Input.
Ahora bien, esta es la configuración que tiene por defecto.
De todas formas, se puede personalizar si queremos trabajar, por ejemplo, como se cuele con otro
motor, con otro tipo de vistas, lo podemos hacer.
Tampoco tenemos que configurar el package principal del proyecto, el package base mediante el componente
scan no necesario.
Ya viene todo listo, todo configurado, una clase principal y a partir de esa clase principal de Spring
Put@ se configura todo.
Bueno, y cómo se configura?
Va a depender de la dependencia que tenga en nuestro proyecto en Maven o engreido.
Por ejemplo, si agregamos Tinduf Tai-Chi se configura de forma automática, segregamos Spring Data,
JPA, JPA e Internet se configura de forma automática con una conexión por defecto.
En memoria se puede personalizar si configuramos prínci criti también lo mismo una configuración mínima
por defecto y así con cada componente de Spring.
Además, otra característica de Spring put que lo hace muy robusto es que trae su propio servidor embebido
dentro un Tomcat.
Por lo tanto, no es necesario tener que configurar, descargar, instalar un Tomcat externo o un Classic
o un ChatBox.
No es necesario.
Bueno, a pesar de que Yambos es un servidor de aplicaciones, pero todo forma para Spring con un Tomcat
es más que suficiente.
No se requiere un servidor externo, viene incluido y lo podemos usar y es mucho más independiente.
Es mucho más desacoplar, mucho más portable.
Lo podemos ejecutar en cualquier servidor, en cualquier parte que tenga instalado el JDK.
Esa es la gran ventaja que tiene.
Entonces, para resumir tres punto importante configuraciones automáticas servidor embebido un Tomcat,
además que bien optimizado para trabajar con Springwood y finalmente manejo de dependencias de forma
automática característica de Spring ahora del framework en sí Spring Franco que como digo se incluye
es parte principal de este input inyección de dependencias.
Bueno, lo vamos a ver en esta sección de todas manera, pero básicamente nos permite inyectar o pasar
una instancia de un componente que está registrado en el contenedor de Spring a otro componente registrado
en Spring.
Entonces, en vez de crear la instancia con el new, simplemente se maneja en un contexto y lo podemos
proveer inyectar mediante este patrón modelo vista controlador MVC separación de capa el modelo que
sería nuestra lógica negocio, los datos de la aplicación, las vistas, la presentación.
Cómo presentamos estos datos?
El controlador que se encarga de recibir, manejar las peticiones del usuario, controlar y además interactúa
con el modelo, con la lógica de negocio y también con las vistas.
El muelo no solamente la clase que contiene estos datos, el POJO por así decir, o un entity.
Además, el acceso a datos, por ejemplo, para trabajar con consultas mediante JS de forma nativa o
con JPA, en fin.
Bueno, y también Spring 5 trae varias características para trabajar, por ejemplo con programación
reactiva flux mediante el API Project Reactor.
Básicamente programación asíncrona en Java que no bloquea los procesos, no bloquea las peticiones http
y el flujo de comunicación.
El flujo de procesos de código como corren en diferentes SHILO se hace mucho más rápido, no se bloquean.
Bueno, obviamente esto da para un curso completo en esta sección no lo vamos a tocar.
Acceso a datos y persistencia JPA Bueno para traja con base datos, pero nos permite mapear clases POJO
que se les conoce como entity a tabla del asfalto y trabajar en vez de consulta nativa se cuele.
Trabajamos 100 por ciento con objetos y estos objetos están mapeados a tabla.
También tenemos la programación orientada a aspectos, también conocida como a O.P.
Las siglas en inglés básicamente nos permite de forma transversal agregar mayor funcionalidades a nuestra
clase.
Básicamente es un interceptor intercepta métodos para hacer algo antes o después o durante la invocación
de ese método será configuración complicada.
Con Springwood la configuración se reduce a cero.
Viene todo configurado, listo para empezar a desarrollar, ecribir controladores nuestras vistas y
crear nuestra aplicación.
De todas formas, esto se puede extender y personalizar en un archivo.
Perdis que lo veremos también en esta sección JDK mínimo requerido.
8 podemos usar el 8.
También podemos usar JDK 11, que también se recomienda, ya que de soporte a largo plazo, pero también
podemos utilizar últimas versiones como la 14, la 15, pero el día de hoy la última es la 15 y a punto
salir las 16.
Pero esto va variando, va cambiando, porque como nueva política de Oracle va lanzando nuevas actualizaciones,
nuevas versiones del JDK cada 6 meses.
Programación funcional con Reactor también muy relacionado también a la programación reactiva, un paradigma
funcional, es decir, en cascada, flujos o streams.
Y a través de estos streams trabajamos en el caso de Reactor, trabajamos con streams reactivo que también
se le conoce como observables o flux.
En fin, es diferente.
Termino y por detrás de escena cumple con el patrón de diseño observador.
Pero bueno.
Otro tema de ingeniería de software, componente que veremos en esta sección Spring Boot, por supuesto
es el core en la base incluye Spring Framework y dentro de Spring Framework tenemos Spring y yo sé que
es el patrón impresión de control que nos permite todo el manejo de beans o componentes manejo de contextos.
Estos componentes son objetos que lo podemos guardar en el contenedor.
Se pueden registrar de diferente forma usando anotaciones, cosa que veremos y se pueden inyectar estos
componentes que están registrados en otros componentes que también están registrados.
Por ejemplo, un controlador le podemos inyectar un service, una instancia de un service parapléjica,
negocio para manejo con los repository o datos.
En fin, también tenemos el MDC.
También lo vamos a ver con los controladores usando siempre anotaciones.
Mapear estos métodos handler o de manejo de peticiones http del controlador.
Lo mapeados a una ruta VCL aún en point y vistas Tinsley, que es un motor de templates que se encarga
de analizar de parsear esta plantilla y convierte todo este atributos o código propio de Time Life es
analizado y lo convierte en HTML.
Entonces para trabajar con HTML5 y con buenas prácticas es muy potente y también muy fácil de programar
y separa completamente el código Java del HTML.
Por lo tanto, las vistas está endif No existe el código Java, solamente trabajamos con atributos directivas
principalmente.
No sé si lo dije anteriormente, pero no solamente podemos trabajar con pistas HTML también.
Spring como corre y se ejecuta por el lado de servidor, podemos implementar API REST y maneja una API
completa y muy robusta para implementar estas API que pueden retornar por defecto.
Retornan Jaison, pero también XML y otro tipo de respuesta texto plano.
Bien, esto sería lo principal y una introducción a Springwood y a Spring y a todo este ecosistema.
Nos vemos en la siguiente clase.