SlideShare ist ein Scribd-Unternehmen logo
1 von 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!

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSXMicah Wood
 
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Steve Pember
 
Capitulo04
Capitulo04Capitulo04
Capitulo04martin
 
Introduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionIntroduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionRichard Paul
 
What is component in reactjs
What is component in reactjsWhat is component in reactjs
What is component in reactjsmanojbkalla
 
Understanding react hooks
Understanding react hooksUnderstanding react hooks
Understanding react hooksSamundra khatri
 
Unidad 3 aseguramiento de la calidad de los
Unidad 3 aseguramiento de la calidad de losUnidad 3 aseguramiento de la calidad de los
Unidad 3 aseguramiento de la calidad de lospabloreyes154
 
Maven 3 Overview
Maven 3  OverviewMaven 3  Overview
Maven 3 OverviewMike Ensor
 
CLASES STRING MATH TIME
CLASES STRING MATH TIMECLASES STRING MATH TIME
CLASES STRING MATH TIMEFernando Solis
 

Was ist angesagt? (20)

Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSX
 
Introduction to gradle
Introduction to gradleIntroduction to gradle
Introduction to gradle
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
 
Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Flyweight pattern
Flyweight patternFlyweight pattern
Flyweight pattern
 
Capitulo04
Capitulo04Capitulo04
Capitulo04
 
Ingeniería de software modelo incremental
Ingeniería de software  modelo incrementalIngeniería de software  modelo incremental
Ingeniería de software modelo incremental
 
Método v
Método vMétodo v
Método v
 
Introduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionIntroduction to Spring's Dependency Injection
Introduction to Spring's Dependency Injection
 
Blazor web apps
Blazor web appsBlazor web apps
Blazor web apps
 
¿Que son los microservicios?
¿Que son los microservicios?¿Que son los microservicios?
¿Que son los microservicios?
 
What is component in reactjs
What is component in reactjsWhat is component in reactjs
What is component in reactjs
 
Understanding react hooks
Understanding react hooksUnderstanding react hooks
Understanding react hooks
 
Unidad 3 aseguramiento de la calidad de los
Unidad 3 aseguramiento de la calidad de losUnidad 3 aseguramiento de la calidad de los
Unidad 3 aseguramiento de la calidad de los
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Jbuilder
JbuilderJbuilder
Jbuilder
 
Maven 3 Overview
Maven 3  OverviewMaven 3  Overview
Maven 3 Overview
 
CLASES STRING MATH TIME
CLASES STRING MATH TIMECLASES STRING MATH TIME
CLASES STRING MATH TIME
 
Introdução ao React
Introdução ao ReactIntrodução ao React
Introdução ao React
 

Andere mochten auch

Andere mochten auch (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
 

Ähnlich wie Spring - Inyección de 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
 

Ähnlich wie Spring - Inyección de 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’
 

Mehr von 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
 

Mehr von 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
 
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
 
Almacenaniento Datos Android - SQL LITE
Almacenaniento Datos Android - SQL LITEAlmacenaniento Datos Android - SQL LITE
Almacenaniento Datos Android - SQL LITE
 

Spring - Inyección de 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!