Académique Documents
Professionnel Documents
Culture Documents
SPRING
Introduccin a Spring
Framework
Simplifica J2EE
Administra las dependencias entre
componentes
Framework Liviano
Inyeccin de Dependencias (DI)
Orientado a Aspectos (AOP)
Contenedor
Framework a la Carta
Definicin
Una de sus principales ventajas es la facilidad de
integracin con los estndares de Java y con las
herramientas comerciales existentes,
encargndose del acoplamiento entre objetos de
la aplicacin pero sin llegar a formar
dependencias con el framework.
La forma de obtener un API que no invada el
cdigo es basndose en interfaces en lugar de
clases.
Misin de Spring
J2EE debera ser fcil de usar
Es mejor programar utilizando interfaces en un lugar de clases. Spring
reduce la complejidad a cero utilizando interfaces
Utilizar javaBeans es la eleccin perfecta para configurar aplicaciones
El diseo OO es mas importante que cualquier implementacin tecnolgica, como J2EE
SPRING :AOP,DAO,ORM
Conceptos Bsicos para entrar al mundo de
Spring
funcionalidades transversales
del resto de la aplicacin
Como el manejo de
transacciones
aspectos personalizados y
configurarlos
declarativamente
Spring DAO
Las aplicaciones Java EE utilizan el API JDBC para
acceder a RDBMS
Esto implica codificar:
Obtencin de la conexin
Instanciar PreparedStatement
Enviar parmetros a la sentencia SQL
Ejecutar el PreparedStatement
Obtener la informacin del ResultSet y poblar DTOs
Liberar los recursos utilizados
Spring DAO
Con Spring JDBC/DAO se remueve el cdigo comn y lo
coloca en templates.
Implementando el patrn template method
Agregamos el cdigo personalizado a templates pre-establecidos
Spring se encarga de liberar los recursos de base de datos
ORM
El mapeo objeto-relacional (ms conocido por su
Spring ORM
Persistencia para objetos
POJO en RDBMS
Extensin de Spring DAO
Se integra con los
principales productos ORM
Hibernate
JPA
TopLink
El Framework Spring
Validation framework:
valida objetos en aplicaciones web y se encarga de la internacionalizacin.
Datos
Mdulos de Spring
CONTENEDOR DE LOS
IOC
Inversin de Control
Inversion de Control
Es la Tcnica que externaliza la creacin y manejo de
dependencias de componentes
Ioc tambien es conocido como Inyeccion de dependencia
La implementacin de DI (inyeccin de dependencias )de
Spring Core
Columna vertebral de todo el framework
Todos los mdulos de Spring dependen de l
Tambin se le conoce como el contenedor IOC
Inversin del Control (IOC)
Registramos objetos en el framework
El framework invoca los mtodos de los objetos cuando sea necesario
El control se ha invertido: Aplicacin<-Framework
Spring Core
Tambin da soporte a la inyeccin de dependencias (DI)
Cmo un objeto encuentra a los objetos que necesita
Podemos lograr DI a travs de IOC
Estrategias DI
Instanciacin directa
Servicio de registro
CONTENEDOR CENTRAL
Problema:
Tener que escribir cdigo que una a los objetos de una aplicacin para
que puedan colaborar ya sea crendolos o buscndolos.
Solucin:
Mover el cdigo de configuracin fuera de la aplicacin y permitir que el
framework se encargue de ensamblar los componentes.
Contenedor Central
La inyeccin de dependencias es la
dependency lookup
dependency injection
setter injection
constructor injection
EJEMPLOS
Inyeccion de dependencias
ejemplo super Man
DI ejemplo
En telecom necesita un hroe y a tu empresa (rea de marketing) no se le
ocurri mejor idea que crear un superhroe.
El departamento de informtica agarra su IDE favorito y programa su
primera clase Java
Lo malo del test case es que por tener la Super Velocidad en directo.
Indirectamente estas probando la Super Velocidad, es decir, no hay
manera de invocar Superman.doSuperCosas() sin tambin invocar al
mtodo usar de SuperVelocidad.
Quin llama a quin?
El problema es que el mismo Superman
es el encargado de obtener sus
superpoderes.
Por eso no hay forma de testear
Superman aisladamente, puesto que,
cada vez que probemos a Superman,
tambin estaremos testeando su
SuperVelocidad.
DI Ejemplo
Usaremos entonces una tcnica comn para reducir acoplamiento. Esta
tcnica consiste en ocultar los detalles de la implementacin detrs de
interfaces. De manera que la implementacin se pueda cambiar sin impactar
a la clase cliente.
DI ejemplo
Cambiamos ahora SuperVelocidad para implementar la interface
DI ejemplo
Ahora consideremos la siguiente versin:
Vemos la diferencia?
DI Ejemplo
DI Ejemplo
Configuramos Spring para poder utilizar la inyeccin de dependencias
Creamos
SuperMain
para probar
FIN