Bien, para poner en práctica todo lo que hemos visto y aprendido en las clases anteriores, vamos a
crear un ejemplo dentro del mismo proyecto Exprimí Boot D.I.
Bueno, no es necesario crear un proyecto nuevo para esto, así que vamos a usar el mismo proyecto.
Vamos a crear la clase componentes, un controlador, en fin, la idea e implementar relaciones de objetos
en un ejemplo de facturas donde vamos a tener una clase POJO cliente, otra clase POJO factura, otra
Iten factura y otra producto.
Y de alguna forma relacionar estas clases utilizando inyección de dependencia.
Esa es la idea de transformar algo simple, pero para demostrar y practicar lo que ya hemos visto y
quizás aprender algo más.
Lo primero, como son clases POJO parte también de la lógica negocio del modelo.
Vamos a crear un РАМКАХ dentro de models paralelo a servis New Package.
Entonces en vez de servis le vamos a cambiar el nombre.
Bueno, por lo general cuando trabajamos con POJO, que también cuando trabajamos con persistencia,
con Internet o JPA, se le llama ENTITY.
Pero en este caso las vamos a guardar dentro de Domaine o dominio de nuestra aplicación.
Pero también le podríamos colocar, por ejemplo, o incluso POJO en Titti.
Lo típico es domaine o dominio finalizar.
Vamos a crear estas clases.
Por ejemplo, new class cliente finalizarla, perfecto.
Vamos a cerrar todo a las otras clases que tenemos.
Vamos a crear otra clase factura.
Ítem factura.
Bueno, una factura tiene un cliente, pero también tiene muchos ítems o líneas.
Hay una relación, una factura, muchos.
Ítem factura, cosas que vamos a ver.
Y un item cada línea tiene la cantidad y un producto bruto va a tener el nombre y el precio.
Y también puede tener muchos atributos más finalizar.
Ahora vámonos a los atributos, al detalle.
Cliente
bien por escribir.
Rápido.
Espacio.
Bien.
Método getter y setter.
Perfecto.
Vámonos a factura.
Algún nombre de la factura o descripción vimos que factura tiene una relación con cliente, por lo tanto
Clientes es un atributo, pero también tiene muchas líneas, muchos items.
Por lo tanto del tipo listo y en factura le vamos a llamar items.
Importamos lista de lleba útil del tipo colección de colección o un tipo de arreglo bien source.
Lletra Z marcamos todos generar.
Perfecto, vámonos a Iten factura.
Qué atributos tiene?
Bueno, de partida una relación con producto,
pero además la cantidad.
Mietras setter producto, lo típico, nombre, precio, lo básico.
Stink bien.
Perfecto.
El precio puede ser del tipo double oww o float del tipo decimal o también un entero como lo queramos
manejar.
La idea que sea del tipo numérico, ya sea entero un long o decimal, bien lo dejamos como integer y
guardamos nuestras clases.
Perfecto, entonces cliente a pesar de que un poco no solamente la clase del tipo servis o del tipo
de repositorio, los datos que maneja la lógica de negocio que realizan operaciones consulta no solamente
esos tipos de clase pueden ser manejada por Spring.
También podemos guardar manejar clase POJO como el cliente, como la factura.
Por lo tanto, vamos a anotar cliente y factura como componentes de sprint.
Y también factura.
Bueno, item no, porque en realidad lo que necesitamos es una lista de items.
Una lista de items va a ser un componente.
Eso si, y se lo vamos a inyectar acá a la factura, pero no todavía, porque eso lo tenemos que registrar
mediante la clase.
Configuré, ya que por supuesto, un list de algo no lo podemos anotar con componentes.
Entonces tenemos que tener un método en esta clase configuré hecho con el método Vinh y ahí crear esta
lista de items factura y registrarla como un componente para que se pueda inyectar en factura y producto
o producto.
No es un componente.
Lo vamos a relacionar con cada línea.
Vamos a crear producto y dentro del método Anotá con pin se lo asignamos a la línea, pero habían cosas
que vamos a ver.
Vámonos a factura.
Entonces factura va a tener el cliente, lo vamos a inyectar y también vamos a inyectar y en factura,
pero no todavía.
Después, cuando lo registremos en esta clase de configuración, guardamos y vamos a ordenar con click
derecho source format.
Lo mismo cliente.
Bien, en cliente podríamos inyectar el nombre y el apellido, lo del tipo String.
Lo podemos guardar en un archivo property y podemos inyectar con value, ya que son escalares.
Importamos.
Cliente multo nombre eso lo vamos a definir en el property y cliente punto ápido cliente, punto nombre
nos vamos a recursos a aplicar Chum properties, vamos a definir estos valores bien, voy a colocar
acento.
Después vamos a ver que probablemente tengamos conflicto de caracteres, pero lo vamos a solucionar
en su momento.
Perfecto.
Entonces, componente cliente le inyectamos el nombre y el apellido, se fijan más o menos, tenemos
separado desacoplar do estos textos literales el nombre y apellido.
En el caso de la factura tenemos desacoplar el cliente.
Bueno, en este caso, como es un poco, no va la interfaz.
Simplemente es el objeto que representa datos con atributo quiete Lisetta.
Bueno, ahora si tuviéramos más de una implementación de cliente o tipos de cliente con herencia, en
fin, con clase abstracta o incluso con interface, bueno, ahí también podríamos implementar la inyección
de dependencia mediante la interfaz o tipos genéricos abstracto y lo mismo con la descripción.
Igual que cliente, podríamos tener un value.
Que inyecte el título o descripción de la factura.
Guardamos nos vamos a aplicar en Properties,
por poner un ejemplo.
Factura, deporte, guardamos bien y por ahora llegamos hasta acá.
Ya tenemos más o menos nuestra clases.
Las relaciones que le hace a su componente con la anotación component y que otras van a ser componentes,
pero en la clase configuración, pero no de forma directa, sino una lista.
En este caso de ítem factura.
Pero eso ya lo vemos la próxima clase.
Por ahora nada más nos vemos.