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.
- Anotaciones de Spring Core
- Anotaciones web de primavera
- Anotaciones de arranque de primavera
- Anotaciones de programación de primavera
- Anotaciones de datos de primavera
- 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:
- @ComponentScan
- @Configuración
- Anotaciones de estereotipos
- @Componente
- @Servicio
- @Repositorio
- @Controlador
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
- @Servicio
- @Repositorio
- @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