@Configuration & @Bean en SPRING BOOT
La anotación Spring @Configuration es parte del marco Spring Core. La anotación Spring Configuration indica que la clase tiene métodos de definición de @Bean. Entonces, el contenedor Spring puede procesar la clase y generar Spring Beans para usar en la aplicación. Video explicativo La anotación Spring @Configuration nos permite usar anotaciones para la inyección de […]

La anotación Spring @Configuration es parte del marco Spring Core. La anotación Spring Configuration indica que la clase tiene métodos de definición de @Bean. Entonces, el contenedor Spring puede procesar la clase y generar Spring Beans para usar en la aplicación.
Video explicativo
La anotación Spring @Configuration nos permite usar anotaciones para la inyección de dependencia. Comprendamos cómo crear clases de configuración de Spring. Vamos a crear una clase de bean Java simple.
public class Version {
private final int major;
private final int minor;
private final int revision;
public Version(final int major, final int minor, final int revision) {
this.major = major;
this.minor = minor;
this.revision = revision;
}
@Override
public String toString() {
return major + "." + minor + "." + revision;
}
}
Ahora si tenemos nuestra clase con la anotación @Configuration, podemos crear un método que devuelva nuestra clase que queremos guardar en el contexto de Spring:
@Configuration
public class AppConfig {
@Bean
public Version version() {
return new Version(1, 0, 0);
}
}
En está clase le estamos indicando a Spring que nuestra clase con la anotación @Configuration será una clase encargada de crear beans a través de sus métodos marcados con la anotación @Bean.
Esto puede ser bastante útil ya que si queremos crear una instancia de una clase externa y no podemos usar la anotación @Component ya que el código no es accesible desde nuestro proyecto, podremos crearla gracias a la anotación @Configuration y @Bean. Para ver un ejemplo de ello vamos a crear una instancia de HttpClient que se encuentra dentro del JDK:
@Configuration
public class AppConfig {
@Bean
public Version version() {
return new Version(1, 0, 0);
}
@Bean
public HttpClient httpClient(){
return HttpClient.newBuilder()
.build();
}
@Bean
public HttpClient httpClient2(){
return HttpClient.newBuilder()
.build();
}
}
¿Quieres acelerar tu carrera como desarrollador Java?
Reserva una Sesión de Estrategia Técnica gratuita y descubre cómo pasar de Junior a Senior en menos tiempo del que imaginas.
- Diagnóstico personalizado de tu nivel técnico
- Plan de acción para conseguir tu próximo ascenso
- Mentoría 1-a-1 enfocada en resultados
⚡ Plazas disponibles limitadas