Bienvenidos.
Continuamos con una nueva sección sobre el uso de anotaciones en Yaba.
Pero bien, comencemos.
Es lo que son estas anotaciones.
Vamos a hacer una introducción corta, sin presentación ni PowerPoint.
Ir un poco más al grano, porque tampoco no es tan complejo.
Voy a ir explicando en el código, pero bien, que lo que es una anotación es una estructura muy parecido
a una interfaz, ya que nos permite agregar metadata o configuración a nuestras clases, ya sea la clase,
los métodos atributo.
Entonces, básicamente representa configuración.
Metadata es una forma mucho más moderna a la antigua forma de los esquimales.
Anteriormente se utilizaba mucho XML en Java para configuraciones.
Hoy en día se siguen utilizando, pero mucho menos en favor al uso de anotaciones.
Un código mucho más limpio, no tan engorroso como los x mele.
En fin.
Y también, por supuesto, mucho más orientado objeto, ya que vamos a ver, ahora es parte de Java
5, es decir, una característica de Java desde la versión 5.
Comencemos.
Vamos a cerrar todo.
Vamos a crear un proyecto.
Siguiente siguiente le vamos a llamar a notaciones finalizar como siempre ese reze, vamos a crear un
pacato.
Anotaciones.
Punto.
Ejemplo bien.
Y acá vamos a batir.
Primero partamos por la anotación.
Entonces click derecho new Yaba Class Lleca seleccionamos anotación, anotación.
Así como tenemos las clases interfaces enum, también tenemos una cuarta anotación que es un identificador.
Básicamente le damos un nombre, por ejemplo, JSON, atributo.
Bien, por qué le colocó este nombre?
Porque vamos a ver un ejemplo de cómo convertir un objeto cualquiera con sus atributos a un Jackson,
a una estructura Yeison.
Bueno, si no conocen la estructura Yeison, no se preocupen, es para el ejemplo, pero se utiliza
mucho en API Rest para transportar datos desde un balcón, por ejemplo con Java Enterprise, Michon
o con Spring Framework o con cualquier herramienta.
Tecnología el lenguaje de programación del lado del servidor punto net, php, python, en fin y transporta
estos datos hacia un cliente http, por ejemplo con JavaScript utilizando Ajax o bien utilizando un
framework como Angular React.
En fin.
Entonces finalmente es para desplegar servicios en una estructura dato bien se fijan public interface
con una година porque las anotaciones se utilizan siempre con ArruÃ y el nombre de la clase o nombre
de la anotación en Realia Jason atributo.
Bien, pero tenemos que configurar esta anotación.
Tienes ciertas anotaciones también configuraciones metadata.
Recuerden para indicar cuál va a ser el uso que le vamos a dar o bien en qué contexto se va a ejecutar
o dónde se va a aplicar esta anotación.
Por qué se puede aplicar sobre una clase para configurar la clase?
Se puede aplicar sobre un atributo para configurar un atributo?
Se puede aplicar en un método también o en un constructor en un target?
También podríamos definir que nuestra estación se va a documentar en el Lapido, por ejemplo, o bien
que esta anotación se aplicar a una superclase a una clase padre, pero también que es heredable 12.
En este caso también podemos utilizar una configuración, otra anotación.
Bueno, la anotación se utiliza mucho, un framework mucho en distintos tipos framework.
Por ejemplo, en Spring prácticamente todo el framework está en pause en el uso intensivo de anotaciones
igual por ejemplo Internet JPA de persistencia con anotaciones como Entity para mapear una clase a una
tabla de clase dato y también cada atributo, cada campo lo podemos anotar con Colum para configurar
indicar cuáles son los mapeos, los tipos, datos, algunas regla, en fin, un montón de cosas.
También podemos utilizar anotaciones para validación de formulario, cosa que íbamos a ver después con
el API de validación brillaba API bin validación in spring.
Hay un montón montón.
Es decir, votar toda la clase nombrando anotaciones para inyección de dependencia, para un controlador,
para una clase de servicio.
En fin, mucho.
Pero ahora vamos a ver un ejemplo desde cero, un caso de uso.
Así que vamos a comenzar lo primero el arroba.
Vamos a indicar el target donde se va a aplicar esta notación.
Se fijan target bien, vamos a colocar el elemento, el lugar element type.
Punto y acá indicamos puede ser en el constructor, en un campo o atributo field, en un método o sobre
la clase con Taipeh.
Si es sobre la clase, simplemente Taipeh o sobre otra anotación.
Bien, vamos a utilizar Field.
Sobre atributos, bien, lo segundo.
En qué contexto se va a ejecutar esta anotación retendrán acá?
Bien Retencion Policy.
Acá tenemos tipicamente bueno, si colocamos Klauss en tiempo de compilación, si colocamos right time
en tiempo ejecución.
Esto es lo más típico sources en ninguno de los dos.
Así que en tiempo ejecución también tenemos otras más.
Por ejemplo, document para la documentación si lo queremos agregar a la Vidocq, por ejemplo, ingieres
para todo lo que es herencia una clase padre.
Por ejemplo, si el target se aplicara a una clase, entonces aplica sobre la clase, pero sobre una
clase padre.
Pero esta clase padre puede tener clases hijas y yo quiero utilizar otome.
Cree que esta anotación se refleje haga efecto en las clases hijas.
Utilizamos ingieren.
En nuestro caso no lo vamos a utilizar, así que no, no es necesario.
Bien, también puede tener atributos de configuración, atributos que son propio de esta metadata.
Por ejemplo, el Trent nombre se define como un método, el tipo atto, pero además tiene la característica
de que se puede agregar un valor por defecto en caso de que no se configure default.
Colocamos un valor, por ejemplo, nada, un string vacío y después vamos a tener un procesador que
cuando es vacío va a tomar el mismo nombre que el atributo.
Es decir, el nombre atributo.
La clase va a corresponder también al nombre del atributo de nuestro Yeison.
Se fijan, pero también se puede customizar acá en el nombre del atributo que va a tener en el Jackson.
Acá estamos configurando el Jetson atributo.
Bien, entonces lo más importante estos dos configuraciones, anotaciones o metadata como le queramos
llamar, también se le conoce como decorador.
Bien, entonces vamos a crear una clase por acá New Yaba Class o incluso puede ser un concluso en un
package.
Como siempre, models o modelo, da igual.
Una clase de lo mismo producto OK con atributos private Trent, nombre de void long precio, método
que transceptor.
Y así como tenemos el nombre precio Tibet, también podríamos tener una fecha, por ejemplo local DateTime
o Date un local Dato.
Fetch bien trascender para lafecha también.
Hered.
Entonces les vamos a aplicar esta anotación, donde solamente se puede aplicar en Filth en el campo.
Entonces voy a decir que nombre y precio son los atributos que se van a exportar o a convertir en este
Yeison.
Entonces por acá anotamos con el arroba Jetson atributo.
Perfecto.
Y también el precio Jason atributo.
La fecha no se fijan.
Cada atributo que anoto se va a portar a Jaison, pero también un punto importante, aunque podemos
tachar o decorar conectÃ anotacion, lo atributo las clases o lo meto o lo que sea.
Las anotaciones como ésta, un atributo por sí misma no tiene ningún efecto en la ejecución de nuestra
aplicación.
Por lo tanto, necesitamos implementar un procesador utilizando reflexión.
Entonces a partir de la siguiente clase.
Bueno, de hecho podemos crear nuestra clase con el método main.
La vamos a dejar creada, vamos a crear una instancia pro-ducto, pero la siguiente clase vamos a crear
nuestro procesador con reflexión.
Vamos a obtener esta anotación y vamos a realizar toda esta mecánica de conversión para convertir este
objeto en un yate.
Entonces, para finalizar, nos vamos a ejemplo New.
Ejemplo anotacion
con el método Main.
Producto P igual new producto importamos P.
Punto Set fecha localidad punto Now T.
Punto Set Nombre Mesa de centro
Rolle.
Punto Precio se precio 1000 l lonko perfecto.
Hoy tenemos el objeto.
Bien, entonces a partir de la siguiente clase comenzamos con procesar estas anotaciones y convertir
este objeto producto o cualquiera, porque en realidad se puede aplicar en cualquier atributo para convertir
a Jaison.
Nos vemos en la siguiente clase.