Spring - Inyección de Dependencias
-
Upload
jose-luis-bugarin -
Category
Documents
-
view
2.340 -
download
2
description
Transcript of Spring - Inyección de Dependencias
![Page 2: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/4.jpg)
¿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](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/6.jpg)
Ejemplo
![Page 7: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/7.jpg)
Ejemplo
![Page 8: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/9.jpg)
Ejemplo de Referencia
![Page 10: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/10.jpg)
Ejemplo de Referencia
![Page 11: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/11.jpg)
Ejemplo de Referencia
![Page 12: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/13.jpg)
Ejemplo de Configuración
![Page 14: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/14.jpg)
Ejemplo de Referencia – Setter ID
![Page 15: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/15.jpg)
Ejemplo de Referencia – DI Constructor
![Page 16: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/16.jpg)
Ejemplo Referencia - DI Constructor
![Page 17: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/19.jpg)
Inyección de Valores Simples
![Page 20: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/21.jpg)
Ejemplo Inyección de Beans
![Page 22: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/22.jpg)
Ejemplo de inyección de beans
![Page 23: Spring - Inyección de Dependencias](https://reader034.fdocuments.in/reader034/viewer/2022042700/559708c51a28ab9f2f8b4735/html5/thumbnails/23.jpg)
Ejemplo de Bean Naming