SlideShare una empresa de Scribd logo
1 de 19
Introducción Spring Framework Diego Armando GómezMosquera. dgomez@vortexbird.com dagmosqu@usbcali.edu.co Sun Certified Java Associated. Sun Certified Java Programmer. Sun Certified Web Component Developer. Sun Certified Business Component Developer 5
Agenda Que es Spring Arquitectura de Spring Principales módulos de Spring Inyección de dependencias Programación orientada aspectos. Configurando aplicación usando Spring Instalar el contenedor de Inversión de Control de Spring (IoC) Crear y configurar un Bean en el contenedor de Inversión de Control . Usando el Auto-WritingBean con XML Usando el Auto-WritingBean con Anotaciones.
Que es Spring? Un framework contenedor liviano basado en la técnica Inversión de Control (IoC) y una implementación de desarrollo según el paradigma Orientado a Aspectos (AOP)
Que es Spring? Framework: porque define la forma de desarrollar aplicaciones JavaEE, dando soporte y simplificando complejidad propia del software corporativo. Inversión de Control (IoC): promueve el bajo acoplamiento a partir de la inyección de dependencias (DI) entre los objetos (relaciones). Orientación a Aspectos (AOP): presenta una estructura simplificada para el desarrollo y utilización de aspectos (módulos multipleobjectcrosscutting).
Arquitectura de Spring
Arquitectura de Spring DAO: Soporta el manejo de transacciones con el soporte de AOP. ORM: Integración con diferentes capas de mapeo objeto relacional Hibernate, JPA, JDO, iBates entre otros. JavaEE: Acesso a servicios que provee la especificacionJavaEE. Web: provee un contexto de trabajo para el desarrollo de aplicaciones web e integración con otros frameworks (Struts, JSF, Tapestry, etc).
Inyección de dependencias DependencyInjection (DI) Patrón de diseño orientado a objetos, en el que se suministran objetos a una clase en lugar de ser la propia clase quien cree el objeto.  El término fue acuñado por Martin Fowler.
Sin Inyección de dependencias publicclassVehiculo { private Motor motor = new Motor();     /** @retorna la velocidad del vehículo*/ publicDoubleenAceleracionDePedal(intpresionDePedal) { motor.setPresionDePedal(presionDePedal); int torque = motor.getTorque(); Double velocidad = ... //realiza el cálculo return velocidad;     } }
Con Inyección de dependencias publicclassVehiculo { private Motor motor = null; publicsetMotor(Motor motor){ this.motor = motor;     }     /** @retorna la velocidad del vehículo*/ publicDoubleenAceleracionDePedal(intpresionDePedal) { Double velocidad = null; if (null != motor){ motor.setPresionDePedal(presionDePedal); int torque = motor.getTorque(); 	 velocidad = ... //realiza el cálculo         } return velocidad;     } }
Con Inyección de dependencias //se omite la clase Motor ya que no es relevante para este ejemplo publicclassVehiculoFactory { publicVehiculoconstruyeVehiculo() { Vehiculovehiculo = new Vehiculo();         Motor motor = new Motor(); vehiculo.setMotor(motor); returnvehiculo;     } }
Inversión de control Inversion of Control (IoC) Es un método de programación en el que el flujo de ejecución de un programa se invierte respecto a los métodos de programación tradicionales, en los que la interacción se expresa de forma imperativa haciendo llamadas a procedimientos (procedurecalls) o funciones. Tradicionalmente el programador especifica la secuencia de decisiones y procedimientos que pueden darse durante el ciclo de vida de un programa mediante llamadas a funciones. En su lugar, en la inversión de control se especifican respuestas deseadas a sucesos o solicitudes de datos concretas, dejando que algún tipo de entidad o arquitectura externa lleve a cabo las acciones de control que se requieran en el orden necesario y para el conjunto de sucesos que tengan que ocurrir.
Configurando aplicación usando Spring Instalar el contenedor de Inversión de Control de Spring (IoC) Crear y configurar un Bean en el contenedor de Inversión de Control . Usando el Auto-WritingBean con XML Usando el Auto-WritingBean con Anotaciones.
applicationContext.xml Este archivo permite hacer las configuraciones de las capacidades soportadas por Spring <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 	<beanname="persona" class="com.vortexbird.demo.modelo.Persona" > 	</bean> </beans>
Configurar un Bean <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 	<beanname="persona" class="com.vortexbird.demo.modelo.Persona" /> </beans>
Configurando el Bean con atributos <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 	<beanname="persona" class="com.vortexbird.demo.modelo.Persona" scope="prototype"> 		<propertyname="id" value="142020" /> 		<propertyname="nombre" value="Juan Perez" /> 		<propertyname="mail" value="jperez@hotmail.com" /> 	</bean> </beans>
Configurando el Bean con constructor <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 	<beanname="persona" class="com.vortexbird.demo.modelo.Persona" scope="prototype"> 		<constructor-argname="id" value="90893"/> 		<constructor-argname="nombre" value="Diego Gomez"/> 		<constructor-argname="mail" value="dgomez@vortexbird.com"/> 	</bean> </beans>
Usando el Auto-WritingBean con XML <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 	<beanname="vehiculo" class="com.vortexbird.demo.modelo.Vehiculo" autowire="byType"/> 	<beanname="motor" class="com.vortexbird.demo.modelo.Motor"/> </beans>
Usando el Auto-WritingBean con Anotaciones <?xmlversion="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans 		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 		http://www.springframework.org/schema/context				http://www.springframework.org/schema/context/spring-context-3.0.xsd">  	<context:annotation-config/> 	<context:component-scan base-package="com.vortexbird.demo" /> 	 </beans>
Introducccion springframework

Más contenido relacionado

La actualidad más candente

Sesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jeeSesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jee
Héctor Santos
 

La actualidad más candente (20)

Spring framework
Spring frameworkSpring framework
Spring framework
 
spring
springspring
spring
 
Spring
SpringSpring
Spring
 
Introducción a java EE 7
Introducción a java EE 7Introducción a java EE 7
Introducción a java EE 7
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Introducción a Java EE
Introducción a Java EEIntroducción a Java EE
Introducción a Java EE
 
Web services y java
Web services y javaWeb services y java
Web services y java
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
 
Modulo 1 java ee platform
Modulo 1   java ee platformModulo 1   java ee platform
Modulo 1 java ee platform
 
Spring framework core 2017
Spring framework core 2017Spring framework core 2017
Spring framework core 2017
 
Aplicaciones empresariales Java EE en la nube
Aplicaciones empresariales Java EE en la nubeAplicaciones empresariales Java EE en la nube
Aplicaciones empresariales Java EE en la nube
 
Java ee 6
Java ee 6Java ee 6
Java ee 6
 
Sesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jeeSesion 3. desarrollo de aplicaciones jee
Sesion 3. desarrollo de aplicaciones jee
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
 
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, PrimefacesSeminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
 
Spring tutorial v0.271
Spring tutorial v0.271Spring tutorial v0.271
Spring tutorial v0.271
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
 

Similar a Introducccion springframework

Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
Sergi Almar i Graupera
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
Antonio Palomares Sender
 

Similar a Introducccion springframework (20)

Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
 
spring framework
spring frameworkspring framework
spring framework
 
Contenedores de IoC - Autofac
Contenedores de IoC - AutofacContenedores de IoC - Autofac
Contenedores de IoC - Autofac
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
 
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
Msdn Webcast   InyeccióN De Dependencias Con Spring FrameworkMsdn Webcast   InyeccióN De Dependencias Con Spring Framework
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
J Headstart, EvolucióN De Forms A Adf
J Headstart, EvolucióN De Forms A AdfJ Headstart, EvolucióN De Forms A Adf
J Headstart, EvolucióN De Forms A Adf
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
Deploy
DeployDeploy
Deploy
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
 
Introducción a Backbone
Introducción a BackboneIntroducción a Backbone
Introducción a Backbone
 
Trabajo de base de datos en sqlserver
Trabajo de base de datos en sqlserverTrabajo de base de datos en sqlserver
Trabajo de base de datos en sqlserver
 
Esencia de web components
Esencia de web componentsEsencia de web components
Esencia de web components
 

Más de Vortexbird

Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey
Vortexbird
 

Más de Vortexbird (13)

Spring security 2017
Spring security 2017Spring security 2017
Spring security 2017
 
Spring ORM JPA
Spring ORM JPASpring ORM JPA
Spring ORM JPA
 
Bean validation 2017
Bean validation 2017Bean validation 2017
Bean validation 2017
 
Introduccion a JPA
Introduccion a JPAIntroduccion a JPA
Introduccion a JPA
 
Log en Aplicaciones Java y JavaEE
Log en Aplicaciones Java y JavaEELog en Aplicaciones Java y JavaEE
Log en Aplicaciones Java y JavaEE
 
Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey
 
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVC
 
Primefaces
PrimefacesPrimefaces
Primefaces
 
Facelets
FaceletsFacelets
Facelets
 
Vb.pd.zathuracode.v5.0.1
Vb.pd.zathuracode.v5.0.1Vb.pd.zathuracode.v5.0.1
Vb.pd.zathuracode.v5.0.1
 
Zathuracode Version 5.0.0
Zathuracode Version 5.0.0Zathuracode Version 5.0.0
Zathuracode Version 5.0.0
 
Web services SOAP con JAX-WS
Web services SOAP con JAX-WSWeb services SOAP con JAX-WS
Web services SOAP con JAX-WS
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
 

Último

Tema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxTema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptx
Noe Castillo
 
DEBER de Segmentación-2023_05jun2023.pdf
DEBER  de Segmentación-2023_05jun2023.pdfDEBER  de Segmentación-2023_05jun2023.pdf
DEBER de Segmentación-2023_05jun2023.pdf
CamiloVasconez
 

Último (20)

📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )
 
Tema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxTema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptx
 
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
 
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxComunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
 
2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx
 
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
 
Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)
 
ensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDASensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDAS
 
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
 
Power Point: Luz desde el santuario.pptx
Power Point: Luz desde el santuario.pptxPower Point: Luz desde el santuario.pptx
Power Point: Luz desde el santuario.pptx
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdfMETODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
 
LA ILIADA Y LA ODISEA.LITERATURA UNIVERSAL
LA ILIADA Y LA ODISEA.LITERATURA UNIVERSALLA ILIADA Y LA ODISEA.LITERATURA UNIVERSAL
LA ILIADA Y LA ODISEA.LITERATURA UNIVERSAL
 
mapa mental sobre el sistema político...
mapa mental sobre el sistema político...mapa mental sobre el sistema político...
mapa mental sobre el sistema político...
 
SEGUNDO GRADO PROGRAMACION ANUAL DPCC - 2024
SEGUNDO GRADO PROGRAMACION ANUAL DPCC - 2024SEGUNDO GRADO PROGRAMACION ANUAL DPCC - 2024
SEGUNDO GRADO PROGRAMACION ANUAL DPCC - 2024
 
Lec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuarioLec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuario
 
Cerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencialCerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencial
 
DEBER de Segmentación-2023_05jun2023.pdf
DEBER  de Segmentación-2023_05jun2023.pdfDEBER  de Segmentación-2023_05jun2023.pdf
DEBER de Segmentación-2023_05jun2023.pdf
 
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
 

Introducccion springframework

  • 1. Introducción Spring Framework Diego Armando GómezMosquera. dgomez@vortexbird.com dagmosqu@usbcali.edu.co Sun Certified Java Associated. Sun Certified Java Programmer. Sun Certified Web Component Developer. Sun Certified Business Component Developer 5
  • 2. Agenda Que es Spring Arquitectura de Spring Principales módulos de Spring Inyección de dependencias Programación orientada aspectos. Configurando aplicación usando Spring Instalar el contenedor de Inversión de Control de Spring (IoC) Crear y configurar un Bean en el contenedor de Inversión de Control . Usando el Auto-WritingBean con XML Usando el Auto-WritingBean con Anotaciones.
  • 3. Que es Spring? Un framework contenedor liviano basado en la técnica Inversión de Control (IoC) y una implementación de desarrollo según el paradigma Orientado a Aspectos (AOP)
  • 4. Que es Spring? Framework: porque define la forma de desarrollar aplicaciones JavaEE, dando soporte y simplificando complejidad propia del software corporativo. Inversión de Control (IoC): promueve el bajo acoplamiento a partir de la inyección de dependencias (DI) entre los objetos (relaciones). Orientación a Aspectos (AOP): presenta una estructura simplificada para el desarrollo y utilización de aspectos (módulos multipleobjectcrosscutting).
  • 6. Arquitectura de Spring DAO: Soporta el manejo de transacciones con el soporte de AOP. ORM: Integración con diferentes capas de mapeo objeto relacional Hibernate, JPA, JDO, iBates entre otros. JavaEE: Acesso a servicios que provee la especificacionJavaEE. Web: provee un contexto de trabajo para el desarrollo de aplicaciones web e integración con otros frameworks (Struts, JSF, Tapestry, etc).
  • 7. Inyección de dependencias DependencyInjection (DI) Patrón de diseño orientado a objetos, en el que se suministran objetos a una clase en lugar de ser la propia clase quien cree el objeto. El término fue acuñado por Martin Fowler.
  • 8. Sin Inyección de dependencias publicclassVehiculo { private Motor motor = new Motor(); /** @retorna la velocidad del vehículo*/ publicDoubleenAceleracionDePedal(intpresionDePedal) { motor.setPresionDePedal(presionDePedal); int torque = motor.getTorque(); Double velocidad = ... //realiza el cálculo return velocidad; } }
  • 9. Con Inyección de dependencias publicclassVehiculo { private Motor motor = null; publicsetMotor(Motor motor){ this.motor = motor; } /** @retorna la velocidad del vehículo*/ publicDoubleenAceleracionDePedal(intpresionDePedal) { Double velocidad = null; if (null != motor){ motor.setPresionDePedal(presionDePedal); int torque = motor.getTorque(); velocidad = ... //realiza el cálculo } return velocidad; } }
  • 10. Con Inyección de dependencias //se omite la clase Motor ya que no es relevante para este ejemplo publicclassVehiculoFactory { publicVehiculoconstruyeVehiculo() { Vehiculovehiculo = new Vehiculo(); Motor motor = new Motor(); vehiculo.setMotor(motor); returnvehiculo; } }
  • 11. Inversión de control Inversion of Control (IoC) Es un método de programación en el que el flujo de ejecución de un programa se invierte respecto a los métodos de programación tradicionales, en los que la interacción se expresa de forma imperativa haciendo llamadas a procedimientos (procedurecalls) o funciones. Tradicionalmente el programador especifica la secuencia de decisiones y procedimientos que pueden darse durante el ciclo de vida de un programa mediante llamadas a funciones. En su lugar, en la inversión de control se especifican respuestas deseadas a sucesos o solicitudes de datos concretas, dejando que algún tipo de entidad o arquitectura externa lleve a cabo las acciones de control que se requieran en el orden necesario y para el conjunto de sucesos que tengan que ocurrir.
  • 12. Configurando aplicación usando Spring Instalar el contenedor de Inversión de Control de Spring (IoC) Crear y configurar un Bean en el contenedor de Inversión de Control . Usando el Auto-WritingBean con XML Usando el Auto-WritingBean con Anotaciones.
  • 13. applicationContext.xml Este archivo permite hacer las configuraciones de las capacidades soportadas por Spring <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <beanname="persona" class="com.vortexbird.demo.modelo.Persona" > </bean> </beans>
  • 14. Configurar un Bean <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <beanname="persona" class="com.vortexbird.demo.modelo.Persona" /> </beans>
  • 15. Configurando el Bean con atributos <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <beanname="persona" class="com.vortexbird.demo.modelo.Persona" scope="prototype"> <propertyname="id" value="142020" /> <propertyname="nombre" value="Juan Perez" /> <propertyname="mail" value="jperez@hotmail.com" /> </bean> </beans>
  • 16. Configurando el Bean con constructor <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <beanname="persona" class="com.vortexbird.demo.modelo.Persona" scope="prototype"> <constructor-argname="id" value="90893"/> <constructor-argname="nombre" value="Diego Gomez"/> <constructor-argname="mail" value="dgomez@vortexbird.com"/> </bean> </beans>
  • 17. Usando el Auto-WritingBean con XML <?xmlversion="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <beanname="vehiculo" class="com.vortexbird.demo.modelo.Vehiculo" autowire="byType"/> <beanname="motor" class="com.vortexbird.demo.modelo.Motor"/> </beans>
  • 18. Usando el Auto-WritingBean con Anotaciones <?xmlversion="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:annotation-config/> <context:component-scan base-package="com.vortexbird.demo" /> </beans>