🌱 Digital Garden

Search

Search IconIcon to open search

Bean

Last updated Aug 6, 2023 Edit Source

Un Bean es un objeto de Java que es manejado usualmente por un Framework que cuenta con un contenedor para utilizar la notes/Inyeccion de Dependencias, de esta forma, logras desacoplarte tanto de la creacion como del tipo especifico de tu colaborador.

En Spring Framework, son bastante utilizados, forman toda la configuracion y cosas extra que se necesitan en la aplicacion. Ayudan a que esta sea mas eficiente.

# Creacion de un Bean

Para crear un Bean personalizado, basta con definir un metodo en cualquier clase que este marcada con la anotacion @Configuration, el retorno de este metodo sera el nuevo Bean que sera manejado por el contenedor de Spring.

1
2
3
4
5
6
7
8
@Configuration
class ConfigBeans {

	@Bean
	public String getName() {
		return "Name: Jaime Ayala";
	}
}

A estos beans les podemos asignar un Scope personalizado, de modo que este se pueda comportar de forma personalizada en la aplicacion.

# Ambiguedad en Beans

Si existen dos Beans exactamente iguales estos seran igualmente agregados al contenedor de Spring, sin embargo, al tratar de ser utilizado uno u otro por otro componente de la aplicaicon, este correra ante un problema de ambiguedad y se obtendra una excepcion.

Para evitar ambiguedad, se puede utilizar la anotacion @Qualifier seguida del nombre especifico del bean que se quiere utilizar para que este sepa asi, elegir un bean especifico en caso de existir ambiguedad.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
@Configuration
class ConfigBeans {

	@Bean("name1")
	public String getName() {
		return "Name: Jaime Ayala";
	}
	
	@Bean("name2")
	public String getName2() {
		return "Name: Pepe A."
	}
}

class BeanUser {

	@Qualifier("name2")
	public String name;
}