Volver a la página principal
viernes 29 noviembre 2024
6

¿Qué es @Configuration en Spring Boot?

La anotación @Configuration en Spring Boot se utiliza para indicar que una clase define uno o más beans que serán gestionados por el contenedor de IoC de Spring. Esta es una forma moderna de configurar aplicaciones Spring, reemplazando configuraciones basadas en XML.

Las clases marcadas con @Configuration permiten definir beans de manera explícita usando métodos anotados con @Bean. Esto ofrece un control más detallado sobre cómo se crean y configuran los objetos de la aplicación.

¿Cómo funciona @Configuration en Spring Boot?

Cuando el contenedor de Spring detecta una clase con @Configuration, la trata como una fuente de definiciones de beans. Los métodos dentro de esta clase que están anotados con @Bean se ejecutan para crear y registrar esos beans en el contexto de la aplicación.

Ejemplo básico de uso de @Configuration

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

    @Bean
    public Motor motor() {
        return new Motor("V8");
    }

    @Bean
    public Vehiculo vehiculo() {
        return new Vehiculo(motor());
    }
}

En este ejemplo:

1. La clase AppConfig está anotada con @Configuration.

2. Define dos beans: Motor y Vehiculo.

3. La dependencia entre los beans se resuelve directamente llamando al método motor() dentro de vehiculo().

Tabla: Anotaciones relacionadas con @Configuration

Anotación Descripción
@Configuration Indica que la clase contiene definiciones de beans y configuraciones.
@Bean Marca un método para definir un bean administrado por Spring.
@ComponentScan Escanea paquetes para detectar clases anotadas con @Component, @Service, etc.
@PropertySource Carga propiedades desde un archivo de configuración externo.

Ventajas de usar @Configuration

  • Configuración centralizada: Agrupa definiciones de beans en un único lugar.
  • Evita redundancias: Permite reutilizar métodos para crear dependencias comunes.
  • Simplicidad: Más intuitivo y legible en comparación con configuraciones XML.

Uso combinado con propiedades externas

Spring Boot permite usar @Configuration junto con propiedades externas para configurar beans dinámicamente:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

    @Value("${vehiculo.nombre}")
    private String vehiculoNombre;

    @Bean
    public Vehiculo vehiculo() {
        return new Vehiculo(vehiculoNombre);
    }
}

En este ejemplo, el valor de vehiculo.nombre se carga desde el archivo application.properties.

Referencias

Para más información, consulta la documentación oficial de Spring.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer