Anotaciones java

Las anotaciones son fragmentos de código que aportan información sobre el comportamiento que deben tener las clases, son una especie de etiquetas.

@SpringBootApplication

un ejemplo básico :

package com.nigmacode.apirest;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ApiApplication {

    public static void main(String[] args) {
        SpringApplication.run(ApiApplication.class, args);
    }

}

En este ejemplo tenemos la anotación @SpringBootApplication, la cual tiene tres efectos sobre el funcionamiento de nuestra aplicación:

  • Inicia el mecanismo de auto configuración de Spring.
  • Lanza el escáner de componentes en el paquete donde se encuentra la aplicación.
  • Permite el registro de beans extra e importar clases de configuración adicionales.

Por ello, @SpringBootApplication es equivalente a definir «@Configuration@EnableAutoConfiguration, and @ComponentScan«.

@RequestMapping

Es una de las anotaciones más usadas en Spring y SpringBoot,


@RequestMapping("/ControladorPeticion")
public class ControladorPeticion {
 
  
 @RequestMapping("/formularioPeticiones")
 public String formulario(Model modelo) {
  
 return "formularioPeticiones";
  
 }
}

Esta anotación está enfocada al mapeo de la web, permitiendo definir, entre otros, los famosos Endpoints, lo hace a través de peticiones HTTP.

El RequestMapping, se puede definir como la ruta base desde la que partirán las respuesta que nuestra aplicación ofrecerá a un cliente ante una petición.

Para profundizar en ello, debemos conocer también la anotación GetMapping.

Más información sobre @RequestMapping.

@GetMapping, @PostMapping…

Estas anotaciones recientes de Spring, permiten simplificar la gestión de respuestas HTTP ante peticiones de un cliente, se pueden definir en base a su tipo de petición y vincularse a un método concreto, dotando al código de más modularidad.

Estas etiquetas permiten la generación de Endpoints.

//Cabeceras

@RequestMapping(value  = "/rutaBase")
public class ClasePrueba(){

@GetMapping("/ejemploGet")
public String saludoGet(){
  return ("Has hecho una petición GET")
}


@PostMapping("/ejemploPost")
public String saludoGet(){
  return ("Has hecho una petición POST")
}
}

@service

En una aplicación, la lógica de negocio no se encuentra junto a la capa de servicios, para especificar que una clase pertenece a la capa de servicios, utilizamos la etiqueta @service, esta etiqueta solo puede ser aplicada a clases.

// Annotation
@Service
 
// Clase
public class MyServiceClass {
 
    // Metodo
    // To compute factorial
    public int factorial(int n)
    {
        // Caso base
        if (n == 0)
            return 1;
 
        return n * factorial(n - 1);
    }
}

@Test

Es la etiqueta que se utiliza para definir un fragmento de código como un elemento de testing, normalmente para que sea interpretado por un software de testeo como Junit.

Supongamos una función que suma dos números y devuelve la suma, algo como lo siguiente:

@Test
public int sumaNumeros(int a, int b){
      return a+b;
}

La anotación @Test nos permitirá realizar pruebas sobre el método.

@AutoWired

Es una de las anotaciones más utilizadas, nos permite inyectar dependencias dentro de Spring, funciona como una especie de «megaFactoría», cuando se registra con esta anotación, permite instanciar objetos con las anotaciones @Controller, @Service, @Repository o @RestController.

Un ejemplo que explica muy claramente el uso de @AutoWired es el siguiente (sacado de aquí ).

package com.arquitecturajava.wired;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
@Repository
public class LibroRepository {
  public List<Libro> buscarTodos() {
    List<Libro> lista= new ArrayList<Libro>();
    lista.add(new Libro ("1","java","pedro"));
    lista.add(new Libro ("2","python","gema"));
    
    return lista;
    
  }
  
}

Aquí podemos ver la definición de una clase LibroReposity como @Repository, tras confirmar que es una de las anotaciones que nos permiten hacer uso del @AutoWired, procedemos a hacer la llamada.

package com.arquitecturajava.wired;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class LibroRestService {
  @Autowired
  LibroRepository repositorio;
  @RequestMapping("/libros")
  public List<Libro> buscarTodos() {
    
    return repositorio.buscarTodos();
    
  }
}

Si ahora ejecutamos el programa, veremos que podemos recurrir a los datos del componente importados en el servicio.

¿Te ha resultado útil?

Promedio de puntuación 0 / 5. Recuento de votos: 0

Deja una respuesta