24
Curso de Spring Introducción a la Inyección de Dependencias [email protected] @jlbugarin

Spring - Inyección de Dependencias

Embed Size (px)

DESCRIPTION

Introducción a la inyección de dependencias con el framework spring.

Citation preview

Page 1: Spring - Inyección de Dependencias

Curso de SpringIntroducción a la Inyección de

[email protected]

@jlbugarin

Page 2: Spring - Inyección de Dependencias

AGENDA

• ¿Qué es y por que Inyección de Dependencias (ID).

• Inyección de Dependencias en Spring Framework.

• ID Parámetros.• Bean Naming.

Page 3: Spring - Inyección de Dependencias

Inyección de Dependencias / Dependency Injection

• El rey de la inverion de control (IoC)• Principio Hollywood– No me llames, yo te llamare

• El contenedor de inyeccion de Dependencias resuelve la dependencia de componentes mediante wiring / injecting un objeto.

• Martin Fowler es el que acuño el termino

Page 4: Spring - Inyección de Dependencias

¿Por qué Inyección de Dependencias?

• Flexible– No hay necesidad de tener un código de búsqueda en la

lógica de negocio.• Testeable– No se necesita un espacio especifico de testeo– Testeo automático como parte de las construcciones

• Mantenible– Permite la reutilización en diferentes entornos de

aplicaciones modificando los archivos de configuración en lugar del código.

– Promueve un enfoque coherente en todos aplicaciones y equipos

Page 5: Spring - Inyección de Dependencias

2 Variantes de Inyección de Dependencias

• Inyección de Dependencias por constructor– La dependencia se da a través de l constructor de

una clase

• Inyección de Dependencias por setter– Las dependencias se proporcionan a través de los

métodos de una clase al estilo JavaBean.– Es mas popular la inyección de dependencias por

constructor.

Page 6: Spring - Inyección de Dependencias

Ejemplo

Page 7: Spring - Inyección de Dependencias

Ejemplo

Page 8: Spring - Inyección de Dependencias

Clases para la Inyección de Dependencias en Spring

• BeanFactory Interface• Clases de Implementación– XMLBEANFACTORY– CLASSPATHAPPLOCATION CONTEXT

Page 9: Spring - Inyección de Dependencias

Ejemplo de Referencia

Page 10: Spring - Inyección de Dependencias

Ejemplo de Referencia

Page 11: Spring - Inyección de Dependencias

Ejemplo de Referencia

Page 12: Spring - Inyección de Dependencias

Archivo de configuración de beans Beans Configuration File

• El bean se define dentro del tag <bean> y este tag esta dento de la raiz <beans>.

• El atributo id, se usa para darle el nombre al bean.

• El atributo class, se usa para indicarle la clase que tiene un id para poderlo inyectar.

Page 13: Spring - Inyección de Dependencias

Ejemplo de Configuración

Page 14: Spring - Inyección de Dependencias

Ejemplo de Referencia – Setter ID

Page 15: Spring - Inyección de Dependencias

Ejemplo de Referencia – DI Constructor

Page 16: Spring - Inyección de Dependencias

Ejemplo Referencia - DI Constructor

Page 17: Spring - Inyección de Dependencias

BEANS

• El termino bean es usado para referirnos a cualquier componente administrado por el BeanFactory.

• Beans es lo mismo que un Java Bean.• Propiedades / atributos de los beans son

simples o valrores que hacen referencia a otros beans.

• Los Beans pueden tener multiples nombres

Page 18: Spring - Inyección de Dependencias

DI PARAMETERS TYPES

• Spring soporta los siguientes parametros de inyeccion:– Valores Simples– Beans– Collecciones / Listas

• Estos parametros se usan para inyeccion de setter o de constructor.

Page 19: Spring - Inyección de Dependencias

Inyección de Valores Simples

Page 20: Spring - Inyección de Dependencias

Inyección de Beans

• Se usa cuando necesitas inyectar un bean en otro.• Ambos beans deben de estar declarados para que puedan

funcionar.• Declarar la inyección con usando el tag ref.• El tipo que se inyecta no tiene que ser e tipo exacto definido

en la referencia.– Si el tipo definido en el objetivo es una interfaz, el tipo

inyectado debe ser una implementación de ella.– Si el tipo definido en el objetivo es una clase, el tipo

inyectado puede ser del mismo tipo o subtipo.

Page 21: Spring - Inyección de Dependencias

Ejemplo Inyección de Beans

Page 22: Spring - Inyección de Dependencias

Ejemplo de inyección de beans

Page 23: Spring - Inyección de Dependencias

Ejemplo de Bean Naming

Page 24: Spring - Inyección de Dependencias

GRACIAS!Ing. Jose Luis Bugarin – [email protected] - @jlbugarin