Anotaciones Fundamentales en el Ecosistema Spring Boot

Anotaciones de Configuración y Arranque

1. @SpringBootApplication

Propósito: Señala la clase principal de una aplicación Spring Boot, actuando como su punto de inicio.

Composición: Combina las anotaciones @Configuration, @EnableAutoConfiguration y @ComponentScan.

  • @Configuration: Define una clase como fuente de beans de configuración.
  • @EnableAutoConfiguration: Habilita la configuración automática basada en dependencias del proyecto.
  • @ComponentScan: Busca y registra componentes de Spring en paquetes específicos.

Ejemplo de código:

Propósito: Marca una clase para definir beans de Spring mediante métodos anotados con @Bean.

Ejemplo:

3. @ComponentScan

Propósito: Indica los paquetes que deben ser examinados para encontrar componentes anotados.

Uso típico: Por defecto, escanea el paquete de la clase anotada y sus subpaquetes.

Ejemplo:

Propósito: Identifica una clase como un componente gestionado por Spring, susceptible de detección automática.

Ejemplo:

Propósito: Especialización de @Component para indicar capas de lógica de negocio.

Ejemplo:

Propósito: Especialización de @Component para componentes de acceso a datos, incluyendo manejo de excepciones de persistencia.

Ejemplo:

Propósito: Marca una clase como controlador en aplicaciones web Spring MVC.

Ejemplo:

Propósito: Combina @Controller y @ResponseBody para crear controladores RESTful que devuelven datos directamente.

Ejemplo:

9. @RequestMapping

Propósito: Asocia una URL o patrón de URL a un método manejador en un controlador.

Ejemplo:

Propósito: Simplifica el mapeo de solicitudes HTTP GET a un método.

Ejemplo:

Propósito: Mapea solicitudes HTTP POST a un método, comúnmente usado para crear recursos.

Ejemplo:

Propósito: Indica que el valor de retorno de un método debe serializarse directamente en el cuerpo de la respuesta HTTP.

Ejemplo:

Propósito: Vincula el cuerpo de una solicitud HTTP (por ejemplo, JSON) a un parámetro de método.

Ejemplo:

Propósito: Extrae valores de segmentos variables en la URL de la solicitud.

Ejemplo:

Propósito: Obtiene parámetros de consulta o datos de formulario de la solicitud.

Ejemplo:

16. @Entity

Propósito: Define una clase como entidad JPA, mapeada a una tabla de base de datos.

Ejemplo:

Propósito: Especifica el nombre de la tabla de base de datos asociada a una entidad.

Ejemplo:

18. @Value

Propósito: Inyecta valores desde fuentes externas como archivos de propiedades.

Ejemplo:

Propósito: Realiza la inyección de dependencias de manera automática.

Ejemplo:

Propósito: Declara un método en una clase de configuración que produce un bean de Spring.

Ejemplo:

Propósito: Controla la creación de un bean basado en condiciones específicas.

Ejemplo:

Propósito: Indica el bean preferido cuando múltiples implementaciones están disponibles.

Ejemplo:

Propósito: Especifica el nombre de un bean para inyección, usado con @Autowired.

Ejemplo:

Propósito: Retrasa la inicialización de un bean hasta su primer uso.

Ejemplo:

Propósito: Define el ámbito de vida de un bean (singleton, prototype, etc.).

Ejemplo:

26. @Data

Propósito: Genera automáticamente getters, setters, toString, equals y hashCode para una clase.

Ejemplo:

@Data public class Cliente { private Long id; private String nombre; private String correo; }


</div>Al compilar, Lombok crea los métodos estándar, reduciendo el código repetitivo.

### 27. @AllArgsConstructor

**Propósito:** Genera un constructor con todos los campos de la clase.

**Ejemplo:**

<div>```
import lombok.AllArgsConstructor;

@AllArgsConstructor
public class Direccion {
    private String calle;
    private String ciudad;
}

Propósito: Genera un constructor sin argumentos.

Ejemplo:

@NoArgsConstructor public class Configuracion { private String clave; }


</div></div>

Etiquetas: Spring Boot java anotaciones Spring MVC JPA

Publicado el 6-17 22:55