Anotaciones de Spring Framework

Spring Framework es uno de los frameworks Java EE más populares. Es un marco ligero de código abierto que permite a los desarrolladores de Java EE 7 crear aplicaciones empresariales sencillas, fiables y escalables. Este marco se centra principalmente en proporcionar varias formas de ayudarlo a administrar sus objetos comerciales. Ahora hablando de Spring Annotation, Spring Annotations es una forma de metadatos que proporciona datos sobre un programa. Las anotaciones se utilizan para proporcionar información complementaria sobre un programa. No tiene un efecto directo sobre el funcionamiento del código que anotan. No cambia la acción del programa compilado. Entonces, en este artículo, discutiremos cuáles son los principales tipos de anotaciones que están disponibles en Spring Framework con algunos ejemplos. 

Tipos de anotaciones de Spring Framework

Básicamente, hay 6 tipos de anotaciones disponibles en todo el marco de Spring.

  1. Anotaciones de Spring Core
  2. Anotaciones web de primavera
  3. Anotaciones de arranque de primavera
  4. Anotaciones de programación de primavera
  5. Anotaciones de datos de primavera
  6. Anotaciones de frijol primavera

Tipo 1: anotaciones de núcleo de resorte 

Las anotaciones Spring presentes en los paquetes org.springframework.beans.factory.annotation y org.springframework.context.annotation se conocen comúnmente como anotaciones Spring Core. Podemos dividirlos en dos categorías:

  • Anotaciones relacionadas con DI
    • @autocableado
    • @Calificatorio
    • @Primario
    • @Frijol
    • @Perezoso
    • @Requerido
    • @Valor
    • @Alcance
    • @Buscar, etc
  • Anotaciones de configuración de contexto
    • @Perfil
    • @Importar
    • @ImportResource
    • @PropertySource, etc.

Anotaciones relacionadas con DI (inyección de dependencia)

1.1: @autocableado

La anotación @Autowired se aplica a los campos, métodos de establecimiento y constructores. Inyecta dependencia de objetos implícitamente. Usamos @Autowired para marcar la dependencia que inyectará el contenedor Spring.

1.2: Inyección de campo

Java

class Student {
    @Autowired
    Address address;
}

1.3: Inyección de constructor

Java

class Student {
    Address address;
  
    @Autowired
    Student(Address address) {
        this.address = address;
    }
}

1.4: Inyección de setter

Java

class Student {
    Address address;
  
    @Autowired
    void setaddress(Address address) {
        this.address = address;
    }
}

Anotaciones de configuración de contexto B 

@Profile: si desea que Spring use una clase @Component o un método @Bean solo cuando un perfil específico está activo, puede marcarlo con @Profile. 

@Component
@Profile("developer")
public class Employee {}

Tipo 2: anotaciones web de Spring

Las anotaciones Spring presentes en los paquetes org.springframework.web.bind.annotation se conocen comúnmente como anotaciones Spring Web. Algunas de las anotaciones que están disponibles en esta categoría son:

  • @RequestMapping
  • @RequestBody
  • @PathVariable
  • @RequestParam
  • Anotaciones de manejo de respuestas
    • @ResponseBody
    • @Manejador de excepciones
    • @ResponseStatus
  • @Controlador
  • @RestController
  • @ModelAttribute
  • @CrossOrigin

Ejemplo: @Controlador

La anotación Spring @Controller también es una especialización de la anotación @Component. La anotación @Controller indica que una clase en particular cumple la función de un controlador. La anotación Spring Controller generalmente se usa en combinación con métodos de controlador anotados basados ​​en la anotación @RequestMapping. Solo se puede aplicar a las clases. Se utiliza para marcar una clase como controlador de requests web. Se usa principalmente con aplicaciones Spring MVC. Esta anotación actúa como un estereotipo de la clase anotada, indicando su función. El despachador escanea dichas clases anotadas en busca de métodos asignados y detecta anotaciones @RequestMapping.

Java

package com.example.demo.controller;
  
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
  
@Controller
public class DemoController {
  
    @RequestMapping("/hello")
    @ResponseBody
    public String helloGFG()
    {
        return "Hello GeeksForGeeks";
    }
}

Tipo 3: Anotaciones Spring Boot

Las anotaciones Spring presentes en los paquetes org.springframework.boot.autoconfigure org.springframework.boot.autoconfigure.condition se conocen comúnmente como anotaciones Spring Boot. Algunas de las anotaciones que están disponibles en esta categoría son:

  • @SpringBootApplication
  • @EnableAutoConfiguration
  • Condiciones de configuración automática
    • @ConditionalOnClass y @ConditionalOnMissingClass
    • @ConditionalOnBean y @ConditionalOnMissingBean
    • @CondicionalEnPropiedad
    • @CondicionalEnRecurso
    • @ConditionalOnWebApplication y @ConditionalOnNotWebApplication
    • @Expresión condicional
    • @Condicional

Ejemplo: @SpringBootApplication

Esta anotación se usa para marcar la clase principal de una aplicación Spring Boot. Encapsula las anotaciones @Configuration, @EnableAutoConfiguration y @ComponentScan con sus atributos predeterminados.

Java

@SpringBootApplication
  
// Class
public class DemoApplication {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        SpringApplication.run(DemoApplication.class, args);
    }
}

Tipo 4: Anotaciones de programación de primavera

Las anotaciones de Spring presentes en los paquetes org.springframework.scheduling.annotation se conocen comúnmente como anotaciones de Spring Scheduling. Algunas de las anotaciones que están disponibles en esta categoría son:

  • @EnableAsync
  • @EnableScheduling
  • @Asíncrono
  • @Programado
  • @Horarios

Ejemplo: @EnableAsync

Esta anotación se usa para habilitar la funcionalidad asíncrona en Spring.

@Configuration
@EnableAsync
class Config {}

Tipo 5: anotaciones de datos de primavera

Spring Data proporciona una abstracción sobre las tecnologías de almacenamiento de datos. Por lo tanto, el código de lógica empresarial puede ser mucho más independiente de la implementación de persistencia subyacente. Algunas de las anotaciones que están disponibles en esta categoría son:

  • Anotaciones de datos comunes de Spring
    • @Transaccional
    • @NoRepositoryBean
    • @Param
    • @Identificación
    • @Transitorio
    • @CreatedBy, @LastModifiedBy, @CreatedDate, @LastModifiedDate
  • Anotaciones JPA de Spring Data
    • @Consulta
    • @Procedimiento
    • @Cerrar
    • @Modificando
    • @EnableJpaRepositorios
  • Anotaciones de Spring Data Mongo
    • @Documento
    • @Campo
    • @Consulta
    • @EnableMongoRepositories

Ejemplo:

Un @transaccional 

Cuando existe la necesidad de configurar el comportamiento transaccional de un método, podemos hacerlo con la anotación @Transactional. 

@Transactional
void payment() {}

B @Id:@Id marca un campo en una clase de modelo como clave principal. Dado que es independiente de la implementación, hace que una clase de modelo sea fácil de usar con múltiples motores de almacenamiento de datos.

class Student {

    @Id
    Long id;

    // other fields
      // ........... 
    
}

Tipo 6: Anotaciones Spring Bean

Hay varias formas de configurar beans en un contenedor Spring. Puede declararlos usando la configuración XML o puede declarar beans usando la anotación @Bean en una clase de configuración o puede marcar la clase con una de las anotaciones del paquete org.springframework.stereotype y dejar el resto para el escaneo de componentes. Algunas de las anotaciones que están disponibles en esta categoría son:

Ejemplo: anotaciones de estereotipos

Spring Framework nos proporciona algunas anotaciones especiales. Estas anotaciones se utilizan para crear Spring beans automáticamente en el contexto de la aplicación. La anotación @Component es la principal anotación de estereotipo. Hay algunas meta-anotaciones de estereotipos que se derivan de @Component , esas son

  1. @Servicio
  2. @Repositorio
  3. @Controlador

1: @Service: especificamos una clase con @Service para indicar que mantienen la lógica empresarial. Además de usarse en la capa de servicio, no hay ningún otro uso especial para esta anotación. Las clases de utilidad se pueden marcar como clases de servicio.

2: @Repository: especificamos una clase con @Repository para indicar que se trata de operaciones CRUD , por lo general, se usa con DAO (objeto de acceso a datos) o implementaciones de repositorio que se ocupan de las tablas de la base de datos.

3: @Controller: especificamos una clase con @Controller para indicar que son controladores frontales y responsables de manejar las requests de los usuarios y devolver la respuesta adecuada. Se utiliza principalmente con servicios web REST.

Entonces, las anotaciones de estereotipos en Spring son @Component, @Service, @Repository y @Controller .

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *