1
00:00:00,210 --> 00:00:00,840
Bienvenidos.

2
00:00:00,900 --> 00:00:04,800
Continuamos con una nueva sección sobre el uso de anotaciones en Yaba.

3
00:00:04,920 --> 00:00:05,660
Pero bien, comencemos.

4
00:00:05,760 --> 00:00:07,170
Es lo que son estas anotaciones.

5
00:00:07,260 --> 00:00:10,680
Vamos a hacer una introducción corta, sin presentación ni PowerPoint.

6
00:00:10,860 --> 00:00:13,890
Ir un poco más al grano, porque tampoco no es tan complejo.

7
00:00:14,040 --> 00:00:19,620
Voy a ir explicando en el código, pero bien, que lo que es una anotación es una estructura muy parecido

8
00:00:19,710 --> 00:00:27,120
a una interfaz, ya que nos permite agregar metadata o configuración a nuestras clases, ya sea la clase,

9
00:00:27,120 --> 00:00:28,440
los métodos atributo.

10
00:00:28,560 --> 00:00:31,230
Entonces, básicamente representa configuración.

11
00:00:31,320 --> 00:00:36,420
Metadata es una forma mucho más moderna a la antigua forma de los esquimales.

12
00:00:36,600 --> 00:00:40,200
Anteriormente se utilizaba mucho XML en Java para configuraciones.

13
00:00:40,290 --> 00:00:45,660
Hoy en día se siguen utilizando, pero mucho menos en favor al uso de anotaciones.

14
00:00:45,810 --> 00:00:49,860
Un código mucho más limpio, no tan engorroso como los x mele.

15
00:00:49,950 --> 00:00:50,370
En fin.

16
00:00:50,490 --> 00:00:56,100
Y también, por supuesto, mucho más orientado objeto, ya que vamos a ver, ahora es parte de Java

17
00:00:56,100 --> 00:01:01,140
5, es decir, una característica de Java desde la versión 5.

18
00:01:01,320 --> 00:01:01,950
Comencemos.

19
00:01:02,100 --> 00:01:03,270
Vamos a cerrar todo.

20
00:01:04,900 --> 00:01:06,430
Vamos a crear un proyecto.

21
00:01:08,600 --> 00:01:19,790
Siguiente siguiente le vamos a llamar a notaciones finalizar como siempre ese reze, vamos a crear un

22
00:01:19,790 --> 00:01:20,330
pacato.

23
00:01:24,500 --> 00:01:25,340
Anotaciones.

24
00:01:25,520 --> 00:01:26,060
Punto.

25
00:01:26,180 --> 00:01:27,930
Ejemplo bien.

26
00:01:28,010 --> 00:01:29,270
Y acá vamos a batir.

27
00:01:29,450 --> 00:01:31,580
Primero partamos por la anotación.

28
00:01:32,550 --> 00:01:38,170
Entonces click derecho new Yaba Class Lleca seleccionamos anotación, anotación.

29
00:01:38,480 --> 00:01:44,990
Así como tenemos las clases interfaces enum, también tenemos una cuarta anotación que es un identificador.

30
00:01:45,080 --> 00:01:48,620
Básicamente le damos un nombre, por ejemplo, JSON, atributo.

31
00:01:51,200 --> 00:01:52,640
Bien, por qué le colocó este nombre?

32
00:01:52,760 --> 00:01:59,390
Porque vamos a ver un ejemplo de cómo convertir un objeto cualquiera con sus atributos a un Jackson,

33
00:01:59,510 --> 00:02:00,530
a una estructura Yeison.

34
00:02:00,650 --> 00:02:05,420
Bueno, si no conocen la estructura Yeison, no se preocupen, es para el ejemplo, pero se utiliza

35
00:02:05,420 --> 00:02:12,140
mucho en API Rest para transportar datos desde un balcón, por ejemplo con Java Enterprise, Michon

36
00:02:12,290 --> 00:02:15,290
o con Spring Framework o con cualquier herramienta.

37
00:02:15,290 --> 00:02:22,040
Tecnología el lenguaje de programación del lado del servidor punto net, php, python, en fin y transporta

38
00:02:22,040 --> 00:02:29,300
estos datos hacia un cliente http, por ejemplo con JavaScript utilizando Ajax o bien utilizando un

39
00:02:29,300 --> 00:02:31,880
framework como Angular React.

40
00:02:32,000 --> 00:02:32,360
En fin.

41
00:02:32,490 --> 00:02:41,210
Entonces finalmente es para desplegar servicios en una estructura dato bien se fijan public interface

42
00:02:41,330 --> 00:02:47,120
con una година porque las anotaciones se utilizan siempre con ArruÃ y el nombre de la clase o nombre

43
00:02:47,120 --> 00:02:49,550
de la anotación en Realia Jason atributo.

44
00:02:50,120 --> 00:02:52,400
Bien, pero tenemos que configurar esta anotación.

45
00:02:52,640 --> 00:02:56,980
Tienes ciertas anotaciones también configuraciones metadata.

46
00:02:57,050 --> 00:03:02,480
Recuerden para indicar cuál va a ser el uso que le vamos a dar o bien en qué contexto se va a ejecutar

47
00:03:02,630 --> 00:03:04,490
o dónde se va a aplicar esta anotación.

48
00:03:04,550 --> 00:03:07,940
Por qué se puede aplicar sobre una clase para configurar la clase?

49
00:03:08,090 --> 00:03:11,480
Se puede aplicar sobre un atributo para configurar un atributo?

50
00:03:11,630 --> 00:03:15,470
Se puede aplicar en un método también o en un constructor en un target?

51
00:03:15,590 --> 00:03:22,130
También podríamos definir que nuestra estación se va a documentar en el Lapido, por ejemplo, o bien

52
00:03:22,130 --> 00:03:28,360
que esta anotación se aplicar a una superclase a una clase padre, pero también que es heredable 12.

53
00:03:28,460 --> 00:03:31,970
En este caso también podemos utilizar una configuración, otra anotación.

54
00:03:32,130 --> 00:03:36,020
Bueno, la anotación se utiliza mucho, un framework mucho en distintos tipos framework.

55
00:03:36,020 --> 00:03:42,890
Por ejemplo, en Spring prácticamente todo el framework está en pause en el uso intensivo de anotaciones

56
00:03:42,980 --> 00:03:51,800
igual por ejemplo Internet JPA de persistencia con anotaciones como Entity para mapear una clase a una

57
00:03:51,860 --> 00:03:57,680
tabla de clase dato y también cada atributo, cada campo lo podemos anotar con Colum para configurar

58
00:03:57,800 --> 00:04:02,590
indicar cuáles son los mapeos, los tipos, datos, algunas regla, en fin, un montón de cosas.

59
00:04:02,810 --> 00:04:07,520
También podemos utilizar anotaciones para validación de formulario, cosa que íbamos a ver después con

60
00:04:07,520 --> 00:04:12,910
el API de validación brillaba API bin validación in spring.

61
00:04:13,010 --> 00:04:14,510
Hay un montón montón.

62
00:04:14,660 --> 00:04:20,450
Es decir, votar toda la clase nombrando anotaciones para inyección de dependencia, para un controlador,

63
00:04:20,480 --> 00:04:21,890
para una clase de servicio.

64
00:04:22,040 --> 00:04:22,880
En fin, mucho.

65
00:04:23,000 --> 00:04:26,210
Pero ahora vamos a ver un ejemplo desde cero, un caso de uso.

66
00:04:26,330 --> 00:04:29,060
Así que vamos a comenzar lo primero el arroba.

67
00:04:29,180 --> 00:04:33,890
Vamos a indicar el target donde se va a aplicar esta notación.

68
00:04:34,830 --> 00:04:39,780
Se fijan target bien, vamos a colocar el elemento, el lugar element type.

69
00:04:42,410 --> 00:04:50,420
Punto y acá indicamos puede ser en el constructor, en un campo o atributo field, en un método o sobre

70
00:04:50,420 --> 00:04:51,560
la clase con Taipeh.

71
00:04:51,600 --> 00:04:55,430
Si es sobre la clase, simplemente Taipeh o sobre otra anotación.

72
00:04:55,530 --> 00:04:57,380
Bien, vamos a utilizar Field.

73
00:04:59,740 --> 00:05:01,810
Sobre atributos, bien, lo segundo.

74
00:05:02,230 --> 00:05:06,160
En qué contexto se va a ejecutar esta anotación retendrán acá?

75
00:05:07,340 --> 00:05:09,110
Bien Retencion Policy.

76
00:05:09,320 --> 00:05:15,500
Acá tenemos tipicamente bueno, si colocamos Klauss en tiempo de compilación, si colocamos right time

77
00:05:15,740 --> 00:05:16,600
en tiempo ejecución.

78
00:05:16,700 --> 00:05:19,580
Esto es lo más típico sources en ninguno de los dos.

79
00:05:20,420 --> 00:05:23,660
Así que en tiempo ejecución también tenemos otras más.

80
00:05:23,870 --> 00:05:31,460
Por ejemplo, document para la documentación si lo queremos agregar a la Vidocq, por ejemplo, ingieres

81
00:05:31,760 --> 00:05:34,430
para todo lo que es herencia una clase padre.

82
00:05:34,610 --> 00:05:40,820
Por ejemplo, si el target se aplicara a una clase, entonces aplica sobre la clase, pero sobre una

83
00:05:40,820 --> 00:05:41,480
clase padre.

84
00:05:41,670 --> 00:05:45,110
Pero esta clase padre puede tener clases hijas y yo quiero utilizar otome.

85
00:05:45,110 --> 00:05:49,250
Cree que esta anotación se refleje haga efecto en las clases hijas.

86
00:05:49,490 --> 00:05:50,840
Utilizamos ingieren.

87
00:05:51,230 --> 00:05:54,710
En nuestro caso no lo vamos a utilizar, así que no, no es necesario.

88
00:05:55,070 --> 00:06:02,000
Bien, también puede tener atributos de configuración, atributos que son propio de esta metadata.

89
00:06:02,360 --> 00:06:10,580
Por ejemplo, el Trent nombre se define como un método, el tipo atto, pero además tiene la característica

90
00:06:10,670 --> 00:06:15,320
de que se puede agregar un valor por defecto en caso de que no se configure default.

91
00:06:15,530 --> 00:06:21,920
Colocamos un valor, por ejemplo, nada, un string vacío y después vamos a tener un procesador que

92
00:06:21,920 --> 00:06:25,700
cuando es vacío va a tomar el mismo nombre que el atributo.

93
00:06:25,910 --> 00:06:27,200
Es decir, el nombre atributo.

94
00:06:27,200 --> 00:06:31,700
La clase va a corresponder también al nombre del atributo de nuestro Yeison.

95
00:06:31,910 --> 00:06:37,130
Se fijan, pero también se puede customizar acá en el nombre del atributo que va a tener en el Jackson.

96
00:06:37,310 --> 00:06:39,920
Acá estamos configurando el Jetson atributo.

97
00:06:40,040 --> 00:06:45,710
Bien, entonces lo más importante estos dos configuraciones, anotaciones o metadata como le queramos

98
00:06:45,710 --> 00:06:48,050
llamar, también se le conoce como decorador.

99
00:06:48,690 --> 00:06:57,290
Bien, entonces vamos a crear una clase por acá New Yaba Class o incluso puede ser un concluso en un

100
00:06:57,290 --> 00:06:57,770
package.

101
00:06:58,490 --> 00:07:02,030
Como siempre, models o modelo, da igual.

102
00:07:04,150 --> 00:07:22,150
Una clase de lo mismo producto OK con atributos private Trent, nombre de void long precio, método

103
00:07:22,210 --> 00:07:22,870
que transceptor.

104
00:07:29,980 --> 00:07:38,530
Y así como tenemos el nombre precio Tibet, también podríamos tener una fecha, por ejemplo local DateTime

105
00:07:38,770 --> 00:07:40,120
o Date un local Dato.

106
00:07:42,490 --> 00:07:45,850
Fetch bien trascender para lafecha también.

107
00:07:48,140 --> 00:07:48,710
Hered.

108
00:07:52,030 --> 00:07:58,090
Entonces les vamos a aplicar esta anotación, donde solamente se puede aplicar en Filth en el campo.

109
00:07:59,170 --> 00:08:06,850
Entonces voy a decir que nombre y precio son los atributos que se van a exportar o a convertir en este

110
00:08:06,850 --> 00:08:07,190
Yeison.

111
00:08:07,850 --> 00:08:11,830
Entonces por acá anotamos con el arroba Jetson atributo.

112
00:08:14,140 --> 00:08:14,710
Perfecto.

113
00:08:14,950 --> 00:08:18,670
Y también el precio Jason atributo.

114
00:08:18,790 --> 00:08:20,170
La fecha no se fijan.

115
00:08:20,260 --> 00:08:26,320
Cada atributo que anoto se va a portar a Jaison, pero también un punto importante, aunque podemos

116
00:08:26,530 --> 00:08:31,810
tachar o decorar conectÃ anotacion, lo atributo las clases o lo meto o lo que sea.

117
00:08:31,870 --> 00:08:38,050
Las anotaciones como ésta, un atributo por sí misma no tiene ningún efecto en la ejecución de nuestra

118
00:08:38,050 --> 00:08:38,500
aplicación.

119
00:08:38,620 --> 00:08:43,060
Por lo tanto, necesitamos implementar un procesador utilizando reflexión.

120
00:08:43,240 --> 00:08:45,010
Entonces a partir de la siguiente clase.

121
00:08:45,130 --> 00:08:47,910
Bueno, de hecho podemos crear nuestra clase con el método main.

122
00:08:48,070 --> 00:08:52,990
La vamos a dejar creada, vamos a crear una instancia pro-ducto, pero la siguiente clase vamos a crear

123
00:08:52,990 --> 00:08:55,270
nuestro procesador con reflexión.

124
00:08:55,390 --> 00:09:00,640
Vamos a obtener esta anotación y vamos a realizar toda esta mecánica de conversión para convertir este

125
00:09:00,640 --> 00:09:01,720
objeto en un yate.

126
00:09:02,230 --> 00:09:05,740
Entonces, para finalizar, nos vamos a ejemplo New.

127
00:09:06,920 --> 00:09:08,570
Ejemplo anotacion

128
00:09:12,650 --> 00:09:13,970
con el método Main.

129
00:09:18,440 --> 00:09:26,780
Producto P igual new producto importamos P.

130
00:09:26,880 --> 00:09:34,370
Punto Set fecha localidad punto Now T.

131
00:09:34,700 --> 00:09:39,050
Punto Set Nombre Mesa de centro

132
00:09:42,590 --> 00:09:43,100
Rolle.

133
00:09:45,230 --> 00:09:53,360
Punto Precio se precio 1000 l lonko perfecto.

134
00:09:53,480 --> 00:09:54,200
Hoy tenemos el objeto.

135
00:09:54,420 --> 00:09:59,510
Bien, entonces a partir de la siguiente clase comenzamos con procesar estas anotaciones y convertir

136
00:09:59,510 --> 00:10:05,330
este objeto producto o cualquiera, porque en realidad se puede aplicar en cualquier atributo para convertir

137
00:10:05,360 --> 00:10:05,900
a Jaison.

138
00:10:06,200 --> 00:10:07,550
Nos vemos en la siguiente clase.
