3. Temario General
➔ Beans
➔ BeanFactory
➔ ApplicationContext
➔ Configurando Beans con XML
4. Bean
➔ Es un POJO
➔ Es un componente de la aplicación, al que se le
pueden inyectar valores y otros componentes
Dependencia Otro
Componente
Componente
POJO
POJO
5. Bean
➔ Los beans y sus dependencias deben ser
declarados para que Spring los reconozca
➔ Al iniciar su contenedor, Spring crea los beans
e inyecta sus dependencias
Dependencia
Bean Bean
7. BeanFactory
➔ Contenedor de los beans de la aplicación
➔ Cada bean tiene un identificador para poder
obtenerlo desde la BeanFactory
BeanFactory
Dependencia
Bean Bean
8. ApplicationContext
➔ Agrega funcionalidad a la BeanFactory como
facilidad de integración con AOP y manejo de
archivos de recursos
ApplicationContext
Dependencia
Bean Bean
10. Configurando Beans con XML
➔ La declaración más básica es un identificador y
la clase del objeto
● <bean id=”idDelBean” class=”LaClase”/>
●
<bean id=”otroBean” class=”OtraClase”/>
11. Configurando Beans con XML
➔ Se pueden inyectar valores de distintos tipos
●
●<bean id=”idDelBean” class=”LaClase”>
● <property name=”nombre” value=”valor” />
● <property name=”unEntero” value=”5” />
● <property name=”lista”>
● <list>
● <value>valor 1</value>
● </list>
● </property>
●</bean>
12. Configurando Beans con XML
➔ Se pueden inyectar otros beans
●
●<bean id=”bean1” class=”LaClase”>
● <property name=”dependencia” ref=”bean2” />
●</bean>
●
<bean id=”otroBean” class=”OtraClase”/>
13. Configurando Beans con XML
➔ Se pueden inyectar valores de distintos tipos
●
●<bean id=”idDelBean” class=”LaClase”>
● <property name=”mapa”>
● <map>
● <entry key=”llave1” value=”valor1” />
● <entry key=”llave2” value=”valor2” />
● </map>
● </property>
●</bean>
14. Configurando Beans con XML
➔ Inyección en el constructor
●
●<bean id=”idDelBean” class=”LaClase”>
● <constructor-arg type=”java.lang.String”
value=”valor” />
● <constructor-arg type=”int” value=”5” />
●</bean>
16. Configurando Beans con XML
➔ Se puede manejar el ciclo de vida del objeto
●
●<bean id=”idDelBean” class=”LaClase” init-
method=”metodoDeInicializacion” destroy-
method=”llamarAlFinal” />
17. Configurando Beans con XML
➔ Inicialización de tipo lazy
●
●<bean id=”idDelBean” class=”LaClase” lazy-
init=”true” />
18. Configurando Beans con XML
➔ Obteniendo un bean desde una fábrica estática
●
●public static Procesador crearProcesador(String id) {
● if (“tef”.equals(id) {
● return new ProcesadorTef();
● }
● …
●}
19. Configurando Beans con XML
➔ Obteniendo un bean desde una fábrica estática
●
●<bean id=”miBean” class=”FabricaProcesadores”
factory-method=”crearProcesador”>
● <constructor-args value=”tef” />
●</bean>
20. Configurando Beans con XML
➔ Obteniendo un bean desde un método de
instancia tipo fábrica
public class FabricaProcesador {
private Map<String, Procesador> procesadores;
...
public Procesador crearProcesador(String id) {
return rocesadores.get(id);
}
...
}
21. Configurando Beans con XML
Obteniendo un bean desde un método de
instancia tipo fábrica
●
●<bean id=”fabrica” class=”FabricaProcesador”>
●…
●</bean>
●
●<bean id=”miBean” factory-bean=”fabrica”
factory-method=”crearProcesador”>
● <constructor-args value=”tef” />
●</bean>