¿Qué es Spring bean?: una guía sobre su uso

| Última modificación: 9 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Los spring bean son unos objetos dentro del Spring Framework que son gestionados por el contenedor de inversión de control o IoC de Spring, el cual se encarga de su ciclo de vida y de sus dependencias. En el día de hoy te brindaremos una guía completa sobre Spring Bean, cómo se configura y cómo podemos utilizarlo en el desarrollo de aplicaciones con Spring.

Spring bean

¿Qué es un Spring bean?

Un spring bean es un objeto que ha sido instanciado, ensamblado y gestionado por el contenedor IoC de Spring. Su importancia es enorme, ya que funcionan como la columna vertebral de las aplicaciones en Spring y son los componentes que el framework usa para la realización de tareas y para llevar a cabo la lógica de negocio.

En vez de que el desarrollador tenga que instanciar directamente los objetos, es el contenedor IoC el que se encarga de realizar esta labor por medio de la aplicación del principio de Inversión de Control. El IoC container hace la gestión de todos los beans, de tal modo que se pueda centralizar la configuración de los objetos y sus dependencias, lo cual a su vez mejoraría la modularidad y flexibilidad del programa.

¿Cómo definir un Spring bean?

Para crear un spring bean debes declarar la clase correspondiente y anotarla con las anotaciones adecuadas de Spring. Una de las formas más comunes de definir un bean es mediante la anotación @Bean dentro de una clase de configuración. Veamos un ejemplo:

@Configuration
public class AppConfig {

@Bean
public GestorCarpeta gestorCarpeta() {
return new GestorCarpeta("directorio", "filtro");
}
}

Aquí hemos creado un bean llamado gestorCarpeta. Este será gestionado por el contenedor IoC de Spring y podrá ser utilizado en cualquier parte de la aplicación mediante inyección de dependencias.

Tipos de beans en Spring

Existen diferentes tipos de beans en Spring, dependiendo de cómo los definas y configures:

  1. Beans Singleton: Este es el tipo de bean más común en Spring. Cuando defines un bean como singleton, solo habrá una instancia de ese bean en toda la aplicación. Cada vez que el contenedor IoC necesite un objeto de ese tipo, reutilizará la misma instancia.
  2. Beans Prototype: En contraste con el bean singleton, un bean prototype crea una nueva instancia cada vez que es solicitado.
  3. Beans Request, Session y Global-Session: Estos tipos de beans están asociados a las aplicaciones web. El bean request es válido durante una solicitud HTTP, el session durante una sesión HTTP y el global-session durante una sesión global (aplicable en aplicaciones distribuidas).

Inyección de dependencias con Spring bean

Una de las mayores ventajas de utilizar Spring beans es la facilidad para gestionar las dependencias entre objetos. Spring te permite inyectar dependencias directamente en los beans sin necesidad de hacerlo manualmente en el código. Puedes hacer esto a través de constructor o setter, a su vez, la inyección de dependencias se logra usando anotaciones como @Autowired o haciendo una declaración de los beans en archivos de configuración.

Veamos un ejemplo:

@RestController
public class CarpetaController {

@Autowired
private GestorCarpeta gestorCarpeta;

@RequestMapping("/ruta")
public String obtenerRuta() {
return gestorCarpeta.getRuta();
}
}

En este ejemplo podemos observar que el contenedor de Spring inyecta automáticamente el bean gestorCarpeta en el CarpetaController. Esto facilita la reutilización de objetos y la gestión de dependencias, ya que no necesitas preocuparte por instanciar manualmente esos objetos cada vez que los necesites.

¿Cómo usar beans personalizados en Spring?

No siempre vas a necesitar los spring bean que vienen configurados por defecto, puede que alguna ocasión necesites crear spring beans que tengan configuraciones personalizadas. Esto puedes hacerlo por medio de la anotación @Bean en una clase de configuración, de este modo podrás tener el control sobre la inicialización del objeto, sus dependencias y su configuración. Veamos un ejemplo de cómo hacerlo:

@Bean
public GestorCarpeta gestorPersonalizado() {
return new GestorCarpeta("misDocumentos", "pdf");
}

Aquí hemos creado un bean llamado gestorPersonalizado que utiliza configuraciones específicas, como la ruta “misDocumentos” y el filtro “pdf”. Este bean puede ser inyectado en cualquier parte de la aplicación mientras que su configuración será reutilizada cada vez que se necesite.

Si te interesa el mundo de la programación y quieres convertirte en un experto, tenemos el bootcamp perfecto para ti. Se trata del curso en java, con el cual aprenderás todas las habilidades necesarias para incursionar en el mercado laboral de forma eficiente. ¡No dudes más y aprovecha tu oportunidad!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado