1
00:00:00,300 --> 00:00:05,070
Bien, para poner en práctica todo lo que hemos visto y aprendido en las clases anteriores, vamos a

2
00:00:05,070 --> 00:00:09,890
crear un ejemplo dentro del mismo proyecto Exprimí Boot D.I.

3
00:00:11,130 --> 00:00:16,770
Bueno, no es necesario crear un proyecto nuevo para esto, así que vamos a usar el mismo proyecto.

4
00:00:16,860 --> 00:00:23,790
Vamos a crear la clase componentes, un controlador, en fin, la idea e implementar relaciones de objetos

5
00:00:23,910 --> 00:00:31,830
en un ejemplo de facturas donde vamos a tener una clase POJO cliente, otra clase POJO factura, otra

6
00:00:31,920 --> 00:00:33,950
Iten factura y otra producto.

7
00:00:34,080 --> 00:00:38,640
Y de alguna forma relacionar estas clases utilizando inyección de dependencia.

8
00:00:38,760 --> 00:00:44,970
Esa es la idea de transformar algo simple, pero para demostrar y practicar lo que ya hemos visto y

9
00:00:44,970 --> 00:00:46,710
quizás aprender algo más.

10
00:00:47,340 --> 00:00:51,900
Lo primero, como son clases POJO parte también de la lógica negocio del modelo.

11
00:00:52,110 --> 00:00:58,290
Vamos a crear un РАМКАХ dentro de models paralelo a servis New Package.

12
00:00:59,730 --> 00:01:02,730
Entonces en vez de servis le vamos a cambiar el nombre.

13
00:01:02,820 --> 00:01:08,400
Bueno, por lo general cuando trabajamos con POJO, que también cuando trabajamos con persistencia,

14
00:01:08,400 --> 00:01:11,200
con Internet o JPA, se le llama ENTITY.

15
00:01:11,250 --> 00:01:18,660
Pero en este caso las vamos a guardar dentro de Domaine o dominio de nuestra aplicación.

16
00:01:18,720 --> 00:01:23,280
Pero también le podríamos colocar, por ejemplo, o incluso POJO en Titti.

17
00:01:23,430 --> 00:01:26,520
Lo típico es domaine o dominio finalizar.

18
00:01:28,120 --> 00:01:29,860
Vamos a crear estas clases.

19
00:01:29,950 --> 00:01:36,920
Por ejemplo, new class cliente finalizarla, perfecto.

20
00:01:37,450 --> 00:01:40,330
Vamos a cerrar todo a las otras clases que tenemos.

21
00:01:43,710 --> 00:01:46,720
Vamos a crear otra clase factura.

22
00:01:54,190 --> 00:01:55,000
Ítem factura.

23
00:01:56,180 --> 00:02:00,940
Bueno, una factura tiene un cliente, pero también tiene muchos ítems o líneas.

24
00:02:01,060 --> 00:02:03,430
Hay una relación, una factura, muchos.

25
00:02:03,520 --> 00:02:05,290
Ítem factura, cosas que vamos a ver.

26
00:02:10,600 --> 00:02:17,830
Y un item cada línea tiene la cantidad y un producto bruto va a tener el nombre y el precio.

27
00:02:17,950 --> 00:02:21,070
Y también puede tener muchos atributos más finalizar.

28
00:02:21,430 --> 00:02:25,120
Ahora vámonos a los atributos, al detalle.

29
00:02:25,210 --> 00:02:25,840
Cliente

30
00:02:33,160 --> 00:02:33,760
bien por escribir.

31
00:02:33,760 --> 00:02:34,390
Rápido.

32
00:02:34,870 --> 00:02:35,510
Espacio.

33
00:02:35,590 --> 00:02:36,120
Espacio.

34
00:02:36,880 --> 00:02:37,180
Bien.

35
00:02:37,960 --> 00:02:39,210
Método getter y setter.

36
00:02:43,910 --> 00:02:44,690
Perfecto.

37
00:02:45,600 --> 00:02:47,120
Vámonos a factura.

38
00:02:52,190 --> 00:03:00,890
Algún nombre de la factura o descripción vimos que factura tiene una relación con cliente, por lo tanto

39
00:03:00,890 --> 00:03:06,440
Clientes es un atributo, pero también tiene muchas líneas, muchos items.

40
00:03:08,090 --> 00:03:15,170
Por lo tanto del tipo listo y en factura le vamos a llamar items.

41
00:03:15,860 --> 00:03:26,890
Importamos lista de lleba útil del tipo colección de colección o un tipo de arreglo bien source.

42
00:03:28,560 --> 00:03:33,140
Lletra Z marcamos todos generar.

43
00:03:33,180 --> 00:03:35,730
Perfecto, vámonos a Iten factura.

44
00:03:36,180 --> 00:03:37,470
Qué atributos tiene?

45
00:03:37,590 --> 00:03:40,050
Bueno, de partida una relación con producto,

46
00:03:43,770 --> 00:03:45,380
pero además la cantidad.

47
00:03:55,110 --> 00:04:00,660
Mietras setter producto, lo típico, nombre, precio, lo básico.

48
00:04:09,770 --> 00:04:11,350
Stink bien.

49
00:04:17,400 --> 00:04:17,820
Perfecto.

50
00:04:17,910 --> 00:04:24,120
El precio puede ser del tipo double oww o float del tipo decimal o también un entero como lo queramos

51
00:04:24,120 --> 00:04:24,570
manejar.

52
00:04:24,690 --> 00:04:31,350
La idea que sea del tipo numérico, ya sea entero un long o decimal, bien lo dejamos como integer y

53
00:04:31,350 --> 00:04:32,840
guardamos nuestras clases.

54
00:04:33,540 --> 00:04:40,420
Perfecto, entonces cliente a pesar de que un poco no solamente la clase del tipo servis o del tipo

55
00:04:40,420 --> 00:04:45,690
de repositorio, los datos que maneja la lógica de negocio que realizan operaciones consulta no solamente

56
00:04:45,690 --> 00:04:48,150
esos tipos de clase pueden ser manejada por Spring.

57
00:04:48,270 --> 00:04:52,890
También podemos guardar manejar clase POJO como el cliente, como la factura.

58
00:04:53,010 --> 00:04:57,240
Por lo tanto, vamos a anotar cliente y factura como componentes de sprint.

59
00:05:01,760 --> 00:05:03,740
Y también factura.

60
00:05:05,810 --> 00:05:12,440
Bueno, item no, porque en realidad lo que necesitamos es una lista de items.

61
00:05:12,920 --> 00:05:14,990
Una lista de items va a ser un componente.

62
00:05:15,080 --> 00:05:21,560
Eso si, y se lo vamos a inyectar acá a la factura, pero no todavía, porque eso lo tenemos que registrar

63
00:05:21,650 --> 00:05:22,790
mediante la clase.

64
00:05:22,820 --> 00:05:28,340
Configuré, ya que por supuesto, un list de algo no lo podemos anotar con componentes.

65
00:05:29,060 --> 00:05:35,510
Entonces tenemos que tener un método en esta clase configuré hecho con el método Vinh y ahí crear esta

66
00:05:35,510 --> 00:05:42,740
lista de items factura y registrarla como un componente para que se pueda inyectar en factura y producto

67
00:05:42,830 --> 00:05:43,220
o producto.

68
00:05:43,220 --> 00:05:44,660
No es un componente.

69
00:05:44,840 --> 00:05:46,730
Lo vamos a relacionar con cada línea.

70
00:05:46,820 --> 00:05:53,090
Vamos a crear producto y dentro del método Anotá con pin se lo asignamos a la línea, pero habían cosas

71
00:05:53,090 --> 00:05:53,780
que vamos a ver.

72
00:05:54,230 --> 00:05:55,730
Vámonos a factura.

73
00:05:56,070 --> 00:06:06,500
Entonces factura va a tener el cliente, lo vamos a inyectar y también vamos a inyectar y en factura,

74
00:06:06,650 --> 00:06:07,400
pero no todavía.

75
00:06:07,490 --> 00:06:13,460
Después, cuando lo registremos en esta clase de configuración, guardamos y vamos a ordenar con click

76
00:06:13,460 --> 00:06:15,680
derecho source format.

77
00:06:19,350 --> 00:06:20,430
Lo mismo cliente.

78
00:06:34,020 --> 00:06:40,740
Bien, en cliente podríamos inyectar el nombre y el apellido, lo del tipo String.

79
00:06:40,860 --> 00:06:48,090
Lo podemos guardar en un archivo property y podemos inyectar con value, ya que son escalares.

80
00:06:48,360 --> 00:06:49,200
Importamos.

81
00:06:53,590 --> 00:07:02,770
Cliente multo nombre eso lo vamos a definir en el property y cliente punto ápido cliente, punto nombre

82
00:07:03,160 --> 00:07:11,590
nos vamos a recursos a aplicar Chum properties, vamos a definir estos valores bien, voy a colocar

83
00:07:11,590 --> 00:07:12,100
acento.

84
00:07:12,220 --> 00:07:18,070
Después vamos a ver que probablemente tengamos conflicto de caracteres, pero lo vamos a solucionar

85
00:07:18,100 --> 00:07:18,790
en su momento.

86
00:07:23,050 --> 00:07:23,590
Perfecto.

87
00:07:26,900 --> 00:07:31,820
Entonces, componente cliente le inyectamos el nombre y el apellido, se fijan más o menos, tenemos

88
00:07:31,820 --> 00:07:36,380
separado desacoplar do estos textos literales el nombre y apellido.

89
00:07:36,650 --> 00:07:39,830
En el caso de la factura tenemos desacoplar el cliente.

90
00:07:39,990 --> 00:07:43,100
Bueno, en este caso, como es un poco, no va la interfaz.

91
00:07:43,230 --> 00:07:48,320
Simplemente es el objeto que representa datos con atributo quiete Lisetta.

92
00:07:48,500 --> 00:07:54,350
Bueno, ahora si tuviéramos más de una implementación de cliente o tipos de cliente con herencia, en

93
00:07:54,350 --> 00:07:59,660
fin, con clase abstracta o incluso con interface, bueno, ahí también podríamos implementar la inyección

94
00:07:59,660 --> 00:08:05,930
de dependencia mediante la interfaz o tipos genéricos abstracto y lo mismo con la descripción.

95
00:08:06,290 --> 00:08:08,570
Igual que cliente, podríamos tener un value.

96
00:08:11,660 --> 00:08:16,250
Que inyecte el título o descripción de la factura.

97
00:08:22,670 --> 00:08:25,580
Guardamos nos vamos a aplicar en Properties,

98
00:08:29,690 --> 00:08:30,890
por poner un ejemplo.

99
00:08:30,920 --> 00:08:35,450
Factura, deporte, guardamos bien y por ahora llegamos hasta acá.

100
00:08:35,660 --> 00:08:37,790
Ya tenemos más o menos nuestra clases.

101
00:08:37,940 --> 00:08:45,860
Las relaciones que le hace a su componente con la anotación component y que otras van a ser componentes,

102
00:08:45,890 --> 00:08:49,880
pero en la clase configuración, pero no de forma directa, sino una lista.

103
00:08:50,120 --> 00:08:51,980
En este caso de ítem factura.

104
00:08:52,040 --> 00:08:54,140
Pero eso ya lo vemos la próxima clase.

105
00:08:54,260 --> 00:08:56,240
Por ahora nada más nos vemos.
