Date post: | 23-Jun-2015 |
Category: |
Technology |
Upload: | jano-gonzalez |
View: | 3,050 times |
Download: | 2 times |
Bean
Temario General
➔ Beans➔ BeanFactory➔ ApplicationContext➔ Configurando Beans con XML
Bean
➔ Es un POJO➔ Es un componente de la aplicación, al que se le
pueden inyectar valores y otros componentes
ComponentePOJO
OtroComponente
POJO
Dependencia
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
Bean BeanDependencia
BeanFactory
BeanFactory
➔ Contenedor de los beans de la aplicación➔ Cada bean tiene un identificador para poder
obtenerlo desde la BeanFactory
Bean BeanDependencia
BeanFactory
ApplicationContext
➔ Agrega funcionalidad a la BeanFactory como facilidad de integración con AOP y manejo de archivos de recursos
Bean BeanDependencia
ApplicationContext
Interesante...¿Pero cómo lo hago en mi
aplicación?
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”/>
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>
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”/>
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>
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>
Manejando situaciones un poco más complicadas
Configurando Beans con XML
➔ Se puede manejar el ciclo de vida del objeto
●
●<bean id=”idDelBean” class=”LaClase” init-method=”metodoDeInicializacion” destroy-method=”llamarAlFinal” />
Configurando Beans con XML
➔ Inicialización de tipo lazy
●
●<bean id=”idDelBean” class=”LaClase” lazy-init=”true” />
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();● }● …
●}
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>
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);}...
}
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>
Imágenes deWikimedia Commons