1
00:00:00,180 --> 00:00:03,840
Bienvenidos a la sección de Spring Framework 5 con Springwood 2.

2
00:00:03,960 --> 00:00:09,270
Si vamos a utilizar Springwood porque es lo que más está llegando hoy en día en el mercado para trabajar

3
00:00:09,270 --> 00:00:10,500
con Spring Framework 5.

4
00:00:10,600 --> 00:00:14,670
Bueno, muchos me preguntan cuál es la diferencia entre Spring Framework y Spring.

5
00:00:15,010 --> 00:00:17,610
Bueno, todo lo que desarrollar es decir escribir código.

6
00:00:17,700 --> 00:00:20,370
El framework en sí es lo mismo, no cambiar nada.

7
00:00:20,490 --> 00:00:24,570
Ese mismo código que tenemos que escribir, por ejemplo, mismo controladores que vamos a implementar,

8
00:00:24,630 --> 00:00:29,370
misma lógica negocio, misma integración con Internet o JPA, en fin.

9
00:00:29,430 --> 00:00:35,100
Pero lo que cambia y lo hace muy poderoso, trabaja con Springwood y por esto también lo píen bastante

10
00:00:35,190 --> 00:00:37,170
en las empresas y en la industria en general.

11
00:00:37,260 --> 00:00:40,530
Es que viene con un set, un conjunto de configuraciones automáticas.

12
00:00:40,560 --> 00:00:42,510
Por defecto no tenemos que tocar nada.

13
00:00:42,570 --> 00:00:45,270
Por ejemplo, no tenemos que configurar nuestras vistas.

14
00:00:45,330 --> 00:00:47,010
Taine LIF viene por defecto.

15
00:00:47,100 --> 00:00:50,620
Si queremos trabajar con JSP también una configuración mínima tampoco.

16
00:00:50,620 --> 00:00:56,250
No tenemos que configurar nada de persistencia si queremos trabajar con JPA, incluso lo podemos implementar.

17
00:00:56,280 --> 00:01:00,540
Trabajar con JPA con una base dato por defecto, en memoria con H2.

18
00:01:00,660 --> 00:01:03,110
En fin, son muchas las características de Spring Input.

19
00:01:03,300 --> 00:01:05,370
Ahora bien, esta es la configuración que tiene por defecto.

20
00:01:05,430 --> 00:01:10,050
De todas formas, se puede personalizar si queremos trabajar, por ejemplo, como se cuele con otro

21
00:01:10,050 --> 00:01:12,580
motor, con otro tipo de vistas, lo podemos hacer.

22
00:01:12,600 --> 00:01:18,800
Tampoco tenemos que configurar el package principal del proyecto, el package base mediante el componente

23
00:01:18,810 --> 00:01:20,010
scan no necesario.

24
00:01:20,130 --> 00:01:25,410
Ya viene todo listo, todo configurado, una clase principal y a partir de esa clase principal de Spring

25
00:01:25,410 --> 00:01:26,640
Put@ se configura todo.

26
00:01:26,720 --> 00:01:28,110
Bueno, y cómo se configura?

27
00:01:28,200 --> 00:01:32,820
Va a depender de la dependencia que tenga en nuestro proyecto en Maven o engreido.

28
00:01:33,000 --> 00:01:37,820
Por ejemplo, si agregamos Tinduf Tai-Chi se configura de forma automática, segregamos Spring Data,

29
00:01:37,830 --> 00:01:43,020
JPA, JPA e Internet se configura de forma automática con una conexión por defecto.

30
00:01:43,170 --> 00:01:48,510
En memoria se puede personalizar si configuramos prínci criti también lo mismo una configuración mínima

31
00:01:48,570 --> 00:01:51,630
por defecto y así con cada componente de Spring.

32
00:01:51,810 --> 00:01:57,780
Además, otra característica de Spring put que lo hace muy robusto es que trae su propio servidor embebido

33
00:01:57,870 --> 00:01:59,250
dentro un Tomcat.

34
00:01:59,370 --> 00:02:05,370
Por lo tanto, no es necesario tener que configurar, descargar, instalar un Tomcat externo o un Classic

35
00:02:05,550 --> 00:02:06,330
o un ChatBox.

36
00:02:06,390 --> 00:02:07,080
No es necesario.

37
00:02:07,210 --> 00:02:11,520
Bueno, a pesar de que Yambos es un servidor de aplicaciones, pero todo forma para Spring con un Tomcat

38
00:02:11,640 --> 00:02:12,480
es más que suficiente.

39
00:02:12,600 --> 00:02:18,660
No se requiere un servidor externo, viene incluido y lo podemos usar y es mucho más independiente.

40
00:02:18,780 --> 00:02:21,810
Es mucho más desacoplar, mucho más portable.

41
00:02:21,960 --> 00:02:26,340
Lo podemos ejecutar en cualquier servidor, en cualquier parte que tenga instalado el JDK.

42
00:02:26,430 --> 00:02:28,110
Esa es la gran ventaja que tiene.

43
00:02:28,230 --> 00:02:33,780
Entonces, para resumir tres punto importante configuraciones automáticas servidor embebido un Tomcat,

44
00:02:33,900 --> 00:02:39,090
además que bien optimizado para trabajar con Springwood y finalmente manejo de dependencias de forma

45
00:02:39,090 --> 00:02:45,450
automática característica de Spring ahora del framework en sí Spring Franco que como digo se incluye

46
00:02:45,570 --> 00:02:48,620
es parte principal de este input inyección de dependencias.

47
00:02:48,630 --> 00:02:54,000
Bueno, lo vamos a ver en esta sección de todas manera, pero básicamente nos permite inyectar o pasar

48
00:02:54,060 --> 00:02:59,550
una instancia de un componente que está registrado en el contenedor de Spring a otro componente registrado

49
00:02:59,640 --> 00:03:00,120
en Spring.

50
00:03:00,360 --> 00:03:05,280
Entonces, en vez de crear la instancia con el new, simplemente se maneja en un contexto y lo podemos

51
00:03:05,280 --> 00:03:11,310
proveer inyectar mediante este patrón modelo vista controlador MVC separación de capa el modelo que

52
00:03:11,310 --> 00:03:16,140
sería nuestra lógica negocio, los datos de la aplicación, las vistas, la presentación.

53
00:03:16,170 --> 00:03:17,850
Cómo presentamos estos datos?

54
00:03:17,970 --> 00:03:23,670
El controlador que se encarga de recibir, manejar las peticiones del usuario, controlar y además interactúa

55
00:03:23,670 --> 00:03:26,670
con el modelo, con la lógica de negocio y también con las vistas.

56
00:03:26,790 --> 00:03:32,640
El muelo no solamente la clase que contiene estos datos, el POJO por así decir, o un entity.

57
00:03:32,790 --> 00:03:39,150
Además, el acceso a datos, por ejemplo, para trabajar con consultas mediante JS de forma nativa o

58
00:03:39,150 --> 00:03:40,620
con JPA, en fin.

59
00:03:40,800 --> 00:03:45,990
Bueno, y también Spring 5 trae varias características para trabajar, por ejemplo con programación

60
00:03:45,990 --> 00:03:49,500
reactiva flux mediante el API Project Reactor.

61
00:03:49,680 --> 00:03:56,550
Básicamente programación asíncrona en Java que no bloquea los procesos, no bloquea las peticiones http

62
00:03:56,670 --> 00:03:58,920
y el flujo de comunicación.

63
00:03:59,040 --> 00:04:04,920
El flujo de procesos de código como corren en diferentes SHILO se hace mucho más rápido, no se bloquean.

64
00:04:05,010 --> 00:04:09,030
Bueno, obviamente esto da para un curso completo en esta sección no lo vamos a tocar.

65
00:04:09,210 --> 00:04:15,810
Acceso a datos y persistencia JPA Bueno para traja con base datos, pero nos permite mapear clases POJO

66
00:04:15,870 --> 00:04:21,330
que se les conoce como entity a tabla del asfalto y trabajar en vez de consulta nativa se cuele.

67
00:04:21,420 --> 00:04:25,350
Trabajamos 100 por ciento con objetos y estos objetos están mapeados a tabla.

68
00:04:25,410 --> 00:04:29,550
También tenemos la programación orientada a aspectos, también conocida como a O.P.

69
00:04:29,670 --> 00:04:36,360
Las siglas en inglés básicamente nos permite de forma transversal agregar mayor funcionalidades a nuestra

70
00:04:36,360 --> 00:04:36,780
clase.

71
00:04:36,900 --> 00:04:43,620
Básicamente es un interceptor intercepta métodos para hacer algo antes o después o durante la invocación

72
00:04:43,620 --> 00:04:46,230
de ese método será configuración complicada.

73
00:04:46,290 --> 00:04:49,380
Con Springwood la configuración se reduce a cero.

74
00:04:49,500 --> 00:04:54,930
Viene todo configurado, listo para empezar a desarrollar, ecribir controladores nuestras vistas y

75
00:04:54,930 --> 00:04:55,980
crear nuestra aplicación.

76
00:04:56,100 --> 00:04:59,910
De todas formas, esto se puede extender y personalizar en un archivo.

77
00:05:00,100 --> 00:05:04,000
Perdis que lo veremos también en esta sección JDK mínimo requerido.

78
00:05:04,090 --> 00:05:05,800
8 podemos usar el 8.

79
00:05:05,860 --> 00:05:11,740
También podemos usar JDK 11, que también se recomienda, ya que de soporte a largo plazo, pero también

80
00:05:11,740 --> 00:05:18,620
podemos utilizar últimas versiones como la 14, la 15, pero el día de hoy la última es la 15 y a punto

81
00:05:18,640 --> 00:05:19,540
salir las 16.

82
00:05:19,600 --> 00:05:25,030
Pero esto va variando, va cambiando, porque como nueva política de Oracle va lanzando nuevas actualizaciones,

83
00:05:25,090 --> 00:05:27,580
nuevas versiones del JDK cada 6 meses.

84
00:05:27,670 --> 00:05:33,430
Programación funcional con Reactor también muy relacionado también a la programación reactiva, un paradigma

85
00:05:33,460 --> 00:05:36,700
funcional, es decir, en cascada, flujos o streams.

86
00:05:36,820 --> 00:05:43,090
Y a través de estos streams trabajamos en el caso de Reactor, trabajamos con streams reactivo que también

87
00:05:43,090 --> 00:05:45,510
se le conoce como observables o flux.

88
00:05:45,610 --> 00:05:46,600
En fin, es diferente.

89
00:05:46,600 --> 00:05:50,500
Termino y por detrás de escena cumple con el patrón de diseño observador.

90
00:05:50,590 --> 00:05:51,100
Pero bueno.

91
00:05:51,190 --> 00:05:56,620
Otro tema de ingeniería de software, componente que veremos en esta sección Spring Boot, por supuesto

92
00:05:56,710 --> 00:06:02,980
es el core en la base incluye Spring Framework y dentro de Spring Framework tenemos Spring y yo sé que

93
00:06:02,980 --> 00:06:09,340
es el patrón impresión de control que nos permite todo el manejo de beans o componentes manejo de contextos.

94
00:06:09,460 --> 00:06:12,880
Estos componentes son objetos que lo podemos guardar en el contenedor.

95
00:06:12,880 --> 00:06:18,490
Se pueden registrar de diferente forma usando anotaciones, cosa que veremos y se pueden inyectar estos

96
00:06:18,490 --> 00:06:22,480
componentes que están registrados en otros componentes que también están registrados.

97
00:06:22,540 --> 00:06:29,020
Por ejemplo, un controlador le podemos inyectar un service, una instancia de un service parapléjica,

98
00:06:29,020 --> 00:06:32,200
negocio para manejo con los repository o datos.

99
00:06:32,350 --> 00:06:34,450
En fin, también tenemos el MDC.

100
00:06:34,510 --> 00:06:38,110
También lo vamos a ver con los controladores usando siempre anotaciones.

101
00:06:38,170 --> 00:06:43,150
Mapear estos métodos handler o de manejo de peticiones http del controlador.

102
00:06:43,240 --> 00:06:50,770
Lo mapeados a una ruta VCL aún en point y vistas Tinsley, que es un motor de templates que se encarga

103
00:06:50,770 --> 00:06:58,330
de analizar de parsear esta plantilla y convierte todo este atributos o código propio de Time Life es

104
00:06:58,390 --> 00:07:00,670
analizado y lo convierte en HTML.

105
00:07:00,700 --> 00:07:06,310
Entonces para trabajar con HTML5 y con buenas prácticas es muy potente y también muy fácil de programar

106
00:07:06,430 --> 00:07:09,490
y separa completamente el código Java del HTML.

107
00:07:09,610 --> 00:07:15,490
Por lo tanto, las vistas está endif No existe el código Java, solamente trabajamos con atributos directivas

108
00:07:15,580 --> 00:07:16,330
principalmente.

109
00:07:16,420 --> 00:07:21,280
No sé si lo dije anteriormente, pero no solamente podemos trabajar con pistas HTML también.

110
00:07:21,370 --> 00:07:26,980
Spring como corre y se ejecuta por el lado de servidor, podemos implementar API REST y maneja una API

111
00:07:26,980 --> 00:07:31,860
completa y muy robusta para implementar estas API que pueden retornar por defecto.

112
00:07:32,170 --> 00:07:36,880
Retornan Jaison, pero también XML y otro tipo de respuesta texto plano.

113
00:07:37,020 --> 00:07:41,830
Bien, esto sería lo principal y una introducción a Springwood y a Spring y a todo este ecosistema.

114
00:07:41,920 --> 00:07:43,480
Nos vemos en la siguiente clase.
