SlideShare una empresa de Scribd logo
1 de 24
Curso de Spring
Introducción a la Inyección de
Dependencias
jbugarin@consultorjava.com
@jlbugarin
AGENDA
• ¿Qué es y por que Inyección de Dependencias
(ID).
• Inyección de Dependencias en Spring
Framework.
• ID Parámetros.
• Bean Naming.
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
¿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
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.
Ejemplo
Ejemplo
Clases para la Inyección de
Dependencias en Spring
• BeanFactory Interface
• Clases de Implementación
– XMLBEANFACTORY
– CLASSPATHAPPLOCATION CONTEXT
Ejemplo de Referencia
Ejemplo de Referencia
Ejemplo de Referencia
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.
Ejemplo de Configuración
Ejemplo de Referencia – Setter ID
Ejemplo de Referencia – DI
Constructor
Ejemplo Referencia - DI
Constructor
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
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.
Inyección de Valores Simples
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.
Ejemplo Inyección de Beans
Ejemplo de inyección de beans
Ejemplo de Bean Naming
Ing. Jose Luis Bugarin – jbugarin@consultorjava.com - @jlbugarin

GRACIAS!

Más contenido relacionado

La actualidad más candente

Testing Spring Boot Applications
Testing Spring Boot ApplicationsTesting Spring Boot Applications
Testing Spring Boot ApplicationsVMware Tanzu
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaJorge Pacheco Mengual
 
React入門
React入門React入門
React入門GIG inc.
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with PhingMichiel Rook
 
End to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux SagaEnd to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux SagaBabacar NIANG
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)Ahmed rebai
 
Odoo 14 Discuss Module
Odoo 14 Discuss ModuleOdoo 14 Discuss Module
Odoo 14 Discuss ModuleCeline George
 
How to Import data into OpenERP V7
How to Import data into OpenERP V7How to Import data into OpenERP V7
How to Import data into OpenERP V7Audaxis
 
Big picture of category theory in scala with deep dive into contravariant and...
Big picture of category theory in scala with deep dive into contravariant and...Big picture of category theory in scala with deep dive into contravariant and...
Big picture of category theory in scala with deep dive into contravariant and...Piotr Paradziński
 
DDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaDDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaGraziella Bonizi
 

La actualidad más candente (15)

Java Programming Assignment
Java Programming AssignmentJava Programming Assignment
Java Programming Assignment
 
Testing Spring Boot Applications
Testing Spring Boot ApplicationsTesting Spring Boot Applications
Testing Spring Boot Applications
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
 
Ef code first
Ef code firstEf code first
Ef code first
 
React入門
React入門React入門
React入門
 
Angular
AngularAngular
Angular
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with Phing
 
Ejercicios java
Ejercicios javaEjercicios java
Ejercicios java
 
WEB DEVELOPMENT USING REACT JS
 WEB DEVELOPMENT USING REACT JS WEB DEVELOPMENT USING REACT JS
WEB DEVELOPMENT USING REACT JS
 
End to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux SagaEnd to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux Saga
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)
 
Odoo 14 Discuss Module
Odoo 14 Discuss ModuleOdoo 14 Discuss Module
Odoo 14 Discuss Module
 
How to Import data into OpenERP V7
How to Import data into OpenERP V7How to Import data into OpenERP V7
How to Import data into OpenERP V7
 
Big picture of category theory in scala with deep dive into contravariant and...
Big picture of category theory in scala with deep dive into contravariant and...Big picture of category theory in scala with deep dive into contravariant and...
Big picture of category theory in scala with deep dive into contravariant and...
 
DDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaDDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquitetura
 

Destacado

Destacado (6)

Inyección de Dependencias: Como inyectar código sin morir de sobre dosis…
Inyección de Dependencias: Como inyectar código sin morir de sobre dosis…Inyección de Dependencias: Como inyectar código sin morir de sobre dosis…
Inyección de Dependencias: Como inyectar código sin morir de sobre dosis…
 
Curso JSF - Conceptos Basicos
Curso JSF - Conceptos BasicosCurso JSF - Conceptos Basicos
Curso JSF - Conceptos Basicos
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
Desarrollo empresarial con java
Desarrollo empresarial con javaDesarrollo empresarial con java
Desarrollo empresarial con java
 
Inyección de dependencia
Inyección de dependenciaInyección de dependencia
Inyección de dependencia
 

Similar a Curso Spring Inyección Dependencias

CDI para Java EE 7
CDI para Java EE 7CDI para Java EE 7
CDI para Java EE 7jose diaz
 
SpringFramework Overview
SpringFramework OverviewSpringFramework Overview
SpringFramework Overviewzerovirus23
 
05.Principio.Inversion.Control.pdf
05.Principio.Inversion.Control.pdf05.Principio.Inversion.Control.pdf
05.Principio.Inversion.Control.pdfAlbertoBaigorria
 
Buenas Prácticas para la Construcción de Aplicaciones de Software
Buenas Prácticas para la Construcción de Aplicaciones de SoftwareBuenas Prácticas para la Construcción de Aplicaciones de Software
Buenas Prácticas para la Construcción de Aplicaciones de SoftwareJorge Alvarez
 
Curso de Spring: Beans
Curso de Spring: BeansCurso de Spring: Beans
Curso de Spring: BeansJano González
 
Rest api con spring boot en 40’
Rest api con spring boot en 40’Rest api con spring boot en 40’
Rest api con spring boot en 40’Sebastian Bogado
 

Similar a Curso Spring Inyección Dependencias (8)

CDI para Java EE 7
CDI para Java EE 7CDI para Java EE 7
CDI para Java EE 7
 
spring framework
spring frameworkspring framework
spring framework
 
SpringFramework Overview
SpringFramework OverviewSpringFramework Overview
SpringFramework Overview
 
05.Principio.Inversion.Control.pdf
05.Principio.Inversion.Control.pdf05.Principio.Inversion.Control.pdf
05.Principio.Inversion.Control.pdf
 
Jpa
JpaJpa
Jpa
 
Buenas Prácticas para la Construcción de Aplicaciones de Software
Buenas Prácticas para la Construcción de Aplicaciones de SoftwareBuenas Prácticas para la Construcción de Aplicaciones de Software
Buenas Prácticas para la Construcción de Aplicaciones de Software
 
Curso de Spring: Beans
Curso de Spring: BeansCurso de Spring: Beans
Curso de Spring: Beans
 
Rest api con spring boot en 40’
Rest api con spring boot en 40’Rest api con spring boot en 40’
Rest api con spring boot en 40’
 

Más de Jose Luis Bugarin Peche

ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...Jose Luis Bugarin Peche
 
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con JavaILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con JavaJose Luis Bugarin Peche
 
Gestión de Rendimiento en Aplicaciones Java - APM
Gestión de Rendimiento en Aplicaciones Java - APMGestión de Rendimiento en Aplicaciones Java - APM
Gestión de Rendimiento en Aplicaciones Java - APMJose Luis Bugarin Peche
 
Arquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERUArquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERUJose Luis Bugarin Peche
 
Amazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
Amazon ec2 | Jose Luis bugarin | Arquitecto EmpresarialAmazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
Amazon ec2 | Jose Luis bugarin | Arquitecto EmpresarialJose Luis Bugarin Peche
 
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis BugarinAprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis BugarinJose Luis Bugarin Peche
 
Transformación Digital | Enfoque para Estudiantes Universitarios
Transformación Digital | Enfoque para Estudiantes UniversitariosTransformación Digital | Enfoque para Estudiantes Universitarios
Transformación Digital | Enfoque para Estudiantes UniversitariosJose Luis Bugarin Peche
 
Comunicar la tierra con la nube jlbugarin v1.0
Comunicar la tierra con la nube jlbugarin v1.0Comunicar la tierra con la nube jlbugarin v1.0
Comunicar la tierra con la nube jlbugarin v1.0Jose Luis Bugarin Peche
 
Iluminatic facturacion electronica_referencia
Iluminatic facturacion electronica_referenciaIluminatic facturacion electronica_referencia
Iluminatic facturacion electronica_referenciaJose Luis Bugarin Peche
 
Introduccion inteligencia negocios | business intelligence
Introduccion inteligencia negocios | business intelligenceIntroduccion inteligencia negocios | business intelligence
Introduccion inteligencia negocios | business intelligenceJose Luis Bugarin Peche
 
Tecnologías de la Información y Comunicación en la Contabilidad...
Tecnologías de la Información y Comunicación en la Contabilidad...Tecnologías de la Información y Comunicación en la Contabilidad...
Tecnologías de la Información y Comunicación en la Contabilidad...Jose Luis Bugarin Peche
 

Más de Jose Luis Bugarin Peche (20)

ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
 
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con JavaILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
 
Gestión de Rendimiento en Aplicaciones Java - APM
Gestión de Rendimiento en Aplicaciones Java - APMGestión de Rendimiento en Aplicaciones Java - APM
Gestión de Rendimiento en Aplicaciones Java - APM
 
Inteligencia artificial en las Empresas
Inteligencia artificial en las EmpresasInteligencia artificial en las Empresas
Inteligencia artificial en las Empresas
 
Arquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERUArquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERU
 
Amazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
Amazon ec2 | Jose Luis bugarin | Arquitecto EmpresarialAmazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
Amazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
 
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis BugarinAprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
 
Ecosistema Tecnología Java
Ecosistema Tecnología JavaEcosistema Tecnología Java
Ecosistema Tecnología Java
 
Transformación Digital | Enfoque para Estudiantes Universitarios
Transformación Digital | Enfoque para Estudiantes UniversitariosTransformación Digital | Enfoque para Estudiantes Universitarios
Transformación Digital | Enfoque para Estudiantes Universitarios
 
¿Que son los microservicios?
¿Que son los microservicios?¿Que son los microservicios?
¿Que son los microservicios?
 
Comunicar la tierra con la nube jlbugarin v1.0
Comunicar la tierra con la nube jlbugarin v1.0Comunicar la tierra con la nube jlbugarin v1.0
Comunicar la tierra con la nube jlbugarin v1.0
 
Sistemas Distribuidos Introduccion
Sistemas Distribuidos IntroduccionSistemas Distribuidos Introduccion
Sistemas Distribuidos Introduccion
 
Iluminatic facturacion electronica_referencia
Iluminatic facturacion electronica_referenciaIluminatic facturacion electronica_referencia
Iluminatic facturacion electronica_referencia
 
Arquitectura empresarial
Arquitectura empresarial Arquitectura empresarial
Arquitectura empresarial
 
Introduccion inteligencia negocios | business intelligence
Introduccion inteligencia negocios | business intelligenceIntroduccion inteligencia negocios | business intelligence
Introduccion inteligencia negocios | business intelligence
 
Servicios Web en Android
Servicios Web en AndroidServicios Web en Android
Servicios Web en Android
 
Tecnologías de la Información y Comunicación en la Contabilidad...
Tecnologías de la Información y Comunicación en la Contabilidad...Tecnologías de la Información y Comunicación en la Contabilidad...
Tecnologías de la Información y Comunicación en la Contabilidad...
 
Administracion servidores linux
Administracion servidores linuxAdministracion servidores linux
Administracion servidores linux
 
Mejoras en el lenguaje java 7
Mejoras en el lenguaje java 7Mejoras en el lenguaje java 7
Mejoras en el lenguaje java 7
 
Presentación inif open_day_2013
Presentación inif open_day_2013Presentación inif open_day_2013
Presentación inif open_day_2013
 

Curso Spring Inyección Dependencias

  • 1. Curso de Spring Introducción a la Inyección de Dependencias jbugarin@consultorjava.com @jlbugarin
  • 2. AGENDA • ¿Qué es y por que Inyección de Dependencias (ID). • Inyección de Dependencias en Spring Framework. • ID Parámetros. • Bean Naming.
  • 3. 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
  • 4. ¿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
  • 5. 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.
  • 8. Clases para la Inyección de Dependencias en Spring • BeanFactory Interface • Clases de Implementación – XMLBEANFACTORY – CLASSPATHAPPLOCATION CONTEXT
  • 12. 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.
  • 14. Ejemplo de Referencia – Setter ID
  • 15. Ejemplo de Referencia – DI Constructor
  • 16. Ejemplo Referencia - DI Constructor
  • 17. 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
  • 18. 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.
  • 20. 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.
  • 23. Ejemplo de Bean Naming
  • 24. Ing. Jose Luis Bugarin – jbugarin@consultorjava.com - @jlbugarin GRACIAS!