Arquitectura y Diseño de Aplicaciones Java EECarlos G. GavidiaAvances Tecnológicos SRL
AgendaEvolución de la computación distribuidaArquitectura Java EESpring FrameworkAplicaciones en capas con Spring Framework
Evolución de la Computación DistribuidaComputación distribuida: Dividir una aplicación en partes que se ejecutan simultáneamente en computadoras diferentesCada una de estas partes se denomina “nivel” (tier)Cada nivel brinda servicios a otras niveles clienteCada nivel puede dividirse a su vez en “capas” (layers)La mayoría de aplicaciones posee tres capasCapa de presentaciónCapa de negocioCapa de acceso a datos
Arquitecturas de un nivelMainframes accedidos mediante terminalesLas interfaces de usuario, la lógica de negocio y la data estaban es una sola computadoraLos usuarios accedían mediante terminales o consolas
Arquitectura de dos nivelesTambién conocida como “cliente-servidor”Los clientes ejecutan los programas de interfaz de usuarioLos servidores administran la lógica de negocio y la dataEjemplo: Aplicaciones Oracle FormsEn algunos casos, la lógica de negocio estaba contenida en el clienteClientes gruesos/gordos
Arquitectura de tres nivelesClientes “delgados” (Browser)El servidor maneja la presentación, la lógica de negocio y la lógica de acceso a datosLa data de la aplicación se encuentra en un sistema de información empresarial (EIS)Como un DBMSLa lógica de negocio es accesible de manera remotaServidor = Servidor de Aplicaciones = Middleware
Arquitectura de n-nivelesLos servidores Web se encargan de la presentación del contenidoLos servidores de aplicaciones contienen componentes de negocio accesibles remotamente
Arquitecturas Java EEHacer aplicaciones de n-niveles tiene sus ventajasMejor utilización de recursosAsignar expertos a cada nivelTambién tiene sus dificultadesLos niveles se deben integrar eficientementeRequiere servicios: Transacciones, seguridadAdministrar conexiones costosas con:DBMSMiddleware orientado a mensajesEl uso de API’s del servidor middleware dificulta la mantenibilidad  y limita la portabilidad
Arquitectura J2EEEn 1999, Sun Microsystems lanza la plataforma J2EE para solucionar estos problemasBasada en la edición estándar de la plataforma Java“Programa una vez, despliega y ejecuta donde quieras”Apoyada por la comunidad Open Source, IBM, Oracle, BEA, etcActualmente, nos encontramos en Java EE 5.
Contenedores Java EELos contenedores proveen un entorno de ejecución para componentes Java.También brindan los servicios de seguridad, transacciones, administración del ciclo de vida, caching, persistencia, comunicación en la redExisten dos tipos de contenedores:Contenedores Web: Almacenan componentes de presentación (JSP, Servlets)Contenedores EJB: Administran  la ejecución de componentes EJB
Contenedores Java EE
Contenedores Java EELos contenedores brindan servicios a las aplicacionesSe accede a los servicios a través de API’s Java EE:Java Transaccion APIJava MessageServiceJava Naming and Directory InterfaceJava Persistence APIJava Transaction APIGracias a esto se reducen los tiempos de desarrollo, y se simplifica el mantenimiento
El modelo MVCPropuesto por TrygveReenskaug en 1979“Applications Programming in Smalltalk-80: How to use Model-View-Controller.”Divide a la aplicación en 3 componentes:El modeloadministra la data y aplica la lógica de negocioLa vista muestra la data de la aplicación y permite al usuariointeractuar con el sistemaEl controladorsirve de mediador entre la vista y el modelo
El modelo MVC
Arquitectura Java EE y MVCLa tecnología Servlet sirve para la construcción de componentes controladorLos controladores Servlet pueden invocar a componentes EJB del modeloLa data obtenida o modificada se puede mostrar en pantalla mediante páginas JSPPodemos tener especialistas en cada tecnologíasMenos riesgos, mayor productividadLos componentes de cada capa son fácilmente manipulables
Arquitectura Java EE y MVC
Capas en una Aplicación Java EEUna arquitectura multi-capas es una extensión de una arquitectura MVCEn MVC: La capa de negocio contiene la capa de acceso a datosEn Java EE: La capa de acceso a datos es una capa independienteMuchos orígenes de datos: DBMS, ERP’s, MainframesLa capa de negocio se centra en la lógica de negocio
Arquitectura y diseño de aplicaciones Java EEAplicaciones Java EE y Spring framework
Spring FrameworkFramework open-sourcepara aplicaciones JavaYa lo puede usar .NET tambiénFue descrito por  Rod Johnson en Expert One-on-One J2EE Design and Development  el 2002
¿Porqué es importante?La plataforma Java EE estandarizó las aplicaciones empresarialesPero no le dio importancia a un modelo simple de programaciónConstruir aplicaciones de n-niveles requería demasiado esfuerzoLocalizar objetos EJB mediante JNDIManejo de Data Transfer ObjectsUsar EJB’s para soporte de transacciones implicaba crear una aplicacíón distribuidaEl API de Beans de Entidad era sumamente complejo
¿Porqué Spring es importante?Los desarrolladores buscaron otras alternativas:Apache Struts: MVC mediante el API ServletHibernate: Persistencia mediante POJO’s  con configuración mínimaSpring es un frameworkmulti-nivelSe integra con los mejores frameworks de un nivelProvee un modelo de programación simple basado en POJO’sCon Spring AOP podemos implementar seguridad y transaccionesCon Spring JDBC-ORM nos permite una interacción simple con la Base de Datos
Estructura de Spring FrameworkEstá dividido en varios módulos independientesProvee puntos de integración con otros frameworks
Spring Core“Columna vertebral” de todo el frameworkTodos los módulos de Spring dependen de élTambién se le conoce como el contenedor IOCInversión del Control (IOC)Registramos objetos en el frameworkEl framework invoca los métodos de los objetos cuando sea necesarioEl control se ha invertido: Aplicación<-FrameworkIOC no es un concepto nuevo. Ejemplo: EJB’s
Spring CoreTambién da soporte a la inyección de dependencias (DI)Cómo un objeto encuentra a los objetos que necesitaPodemos lograr DI a través de IOCEstrategias DIInstanciación directaFactoryHelperServicio de registro
Inyección de dependencias
Fábrica de BeansImplementación sofisticada del patrón factorymethod (GoF)Crea y administra los objetos de la aplicaciónPermite configurar las clases de la aplicación y sus dependencias en archivos XMLPara acceder a un bean:Lo registramos en el archivo de configuración XMLIniciamos el contenedor IOCObtenemos el Bean de la fábrica de beans
Fábrica de beans
Inyección por setters
Inyección por constructores
Contexto de aplicaciónFábrica de beans: Pool donde los objetos son creados y administrados por archivos de configuración.Un contexto de aplicación se la fábrica de beans más algunos servicios adicionales:Archivos properties para I18NSoporte AOP: Transacciones declarativas y seguridadPara aplicaciones Web (También se puede registrar un servletlistenerpara inicializar el contexto)
Spring AOPNos permite separar las funcionalidades transversales del resto de la aplicaciónComo el manejo de transaccionesNos permite construir aspectos personalizados y configurarlos declarativamente
Spring DAOLas aplicaciones Java EE utilizan el API JDBC para acceder a RDBMSEsto implica codificar:Obtención de la conexiónInstanciar PreparedStatementEnviar parámetros a la sentencia SQLEjecutar el PreparedStatementObtener la información del ResultSet  y poblar DTO’sLiberar los recursos utilizadosCon Spring JDBC/DAO se remueve el código común y lo coloca en templates.Implementando el patrón templatemethodAgregamos el código personalizado a templatespre-establecidosSpring se encarga de liberar los recursos de base de datos
Spring ORMPersistencia para objetos POJO en RDBMSExtensión de Spring DAOSe integra con los principales productos ORMHibernateJPATopLinkIBatis
Web MVCBasado en el patrón arquitectónico MVCIntegrado con el API ServletSoporta diversas tecnologías de vista:JSPVelocityAdobe FlexSi no se desea trabajar con Spring MVC, se puede optar por:StrutsJSF
Aplicación en capas con SpringPresentación:Spring MVC permite implementar el controladorProvee una capa de administración de vistasLógica de negocioLos componentes de negocio son clases Java planasSin depender de un framework específicoEjecutan lógica de negocio y manipulan data mediante los componente de la capa de integraciónCon Spring AOP se puede manejar transacciones, seguridad y auditoríaSe pueden exponer los objetos de negocio mediante servicios webIntegraciónInteractúa con el RDBMS mediante el API JDBC a través de objetos DAONos podemos apoyar en Spring DAO y/o Spring ORMTambién puede interactuar con ERP’s, mainframes o sistemas CRM
Arquitectura de aplicaciones con Spring
BibliografíaPro Java™ EE Spring Patterns: Best Practices and Design Strategies Implementing Java EE Patterns with the Spring FrameworkDe DhrubojyotiKayal

Más contenido relacionado

DOTX
Plantilla de toma de requisitos softwarev 1.0
DOCX
control de concurrencia
DOCX
Documento vision
PPTX
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
PDF
Mobile D (programacion dispositivos moviles)
PPTX
Metodologia WEB RNA
PDF
Proceso unificado
PPT
Pruebas De Software
Plantilla de toma de requisitos softwarev 1.0
control de concurrencia
Documento vision
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
Mobile D (programacion dispositivos moviles)
Metodologia WEB RNA
Proceso unificado
Pruebas De Software

La actualidad más candente (20)

PPTX
Servicios Web
PDF
Análisis y especificación de requerimientos
DOCX
Esquema comparativo de los tipos de modelos y metodologías
PPTX
Mapa mental listas
DOCX
Mecanismo de sincronización de procesos
PPT
Técnicas para la Obtención de Requerimientos
DOCX
Candados bd
PDF
Algoritmo de Anillo
PPTX
Componentes y Librerías - Tópicos avanzados de programación.
PDF
7.modelado de los requerimientos escenarios y clases
DOCX
Diagrama de actividades inscripcion, evaluacion, Asistencia
PPTX
Proyecto final de software
PPTX
Servlet.ppt
PDF
Análisis estructurado
DOC
Metodologia crystal
PPTX
Modelo entidad relacion
PDF
Modelado de requisitos
PPTX
Metodologías para el desarrollo de aplicaciones móviles
PDF
Modelo de prototipo
Servicios Web
Análisis y especificación de requerimientos
Esquema comparativo de los tipos de modelos y metodologías
Mapa mental listas
Mecanismo de sincronización de procesos
Técnicas para la Obtención de Requerimientos
Candados bd
Algoritmo de Anillo
Componentes y Librerías - Tópicos avanzados de programación.
7.modelado de los requerimientos escenarios y clases
Diagrama de actividades inscripcion, evaluacion, Asistencia
Proyecto final de software
Servlet.ppt
Análisis estructurado
Metodologia crystal
Modelo entidad relacion
Modelado de requisitos
Metodologías para el desarrollo de aplicaciones móviles
Modelo de prototipo
Publicidad

Destacado (20)

PDF
Introducción a JEE
PPS
Desarrollo de aplicaciones empresariales con Java EE
PPTX
Java script
PPTX
MVC: La Vista
PPTX
DAP - Configuracion ambiente de desarrollo
PPTX
MVC: El modelo
PPTX
Desarrollo de aplicaciones empresariales Introducción
PDF
Introducción a java EE 7
PPTX
Programación Web - Introducción
PPS
Aplicaciones empresariales Java EE en la nube
PPT
Arquitectura java web
PPTX
Procesos de la ingeniería de requisitos
PPTX
CRUD html php mysql
PPTX
PPTX
Arquitectura para aplicaciones web
PPT
Arquitectura 3 Capas
PDF
Frameworks J2EE
PDF
Sesion 3. desarrollo de aplicaciones jee
PPTX
Modulo 1 java ee platform
PPTX
Patrones de arquitectura Software(Capa de Datos)
Introducción a JEE
Desarrollo de aplicaciones empresariales con Java EE
Java script
MVC: La Vista
DAP - Configuracion ambiente de desarrollo
MVC: El modelo
Desarrollo de aplicaciones empresariales Introducción
Introducción a java EE 7
Programación Web - Introducción
Aplicaciones empresariales Java EE en la nube
Arquitectura java web
Procesos de la ingeniería de requisitos
CRUD html php mysql
Arquitectura para aplicaciones web
Arquitectura 3 Capas
Frameworks J2EE
Sesion 3. desarrollo de aplicaciones jee
Modulo 1 java ee platform
Patrones de arquitectura Software(Capa de Datos)
Publicidad

Similar a Arquitectura y diseño de aplicaciones Java EE (20)

PDF
01_ppt_introduccion_spring_mmmmmmmmm.pdf
PPT
spring
PPT
Introduccion Aplicaciones Web en java j2ee
PPTX
01.springframework.pptx
PPTX
Introdución a aplicaciones web en java
PDF
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
DOCX
Spring framework
PPTX
Capitulo_3_1.pptx
PPTX
Arquitectura de Software Cliente - Servidor.ppt
PPT
Desarollo JavaEE con Spring Framework
PPSX
Aplicaciones en capas1
PPTX
framework.pptx
DOCX
Israel tecnologias para desarrollo-web
PDF
[ES] Fundamentos de Java Enterprise Edition
PDF
Inyección de dependencia
PPT
Arquitectura
PDF
[ES] Introducción a Java EE 7
DOCX
PDF
01 jee5-componentes
 
01_ppt_introduccion_spring_mmmmmmmmm.pdf
spring
Introduccion Aplicaciones Web en java j2ee
01.springframework.pptx
Introdución a aplicaciones web en java
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Spring framework
Capitulo_3_1.pptx
Arquitectura de Software Cliente - Servidor.ppt
Desarollo JavaEE con Spring Framework
Aplicaciones en capas1
framework.pptx
Israel tecnologias para desarrollo-web
[ES] Fundamentos de Java Enterprise Edition
Inyección de dependencia
Arquitectura
[ES] Introducción a Java EE 7
01 jee5-componentes
 

Más de Carlos Gavidia-Calderon (9)

PDF
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
PPTX
Game-theoretic Analysis of Development Practices: Challenges and Opportunities
PDF
Estructuras de control
PDF
Segmentación de imágenes mediante algoritmos ACO
PDF
An introduction to software engineering
PPTX
Paralelismo a nivel de Instrucciones
PDF
OpenUP como proceso de desarrollo
PDF
GWT - Una introducción
ODP
Spring Web Services
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
Game-theoretic Analysis of Development Practices: Challenges and Opportunities
Estructuras de control
Segmentación de imágenes mediante algoritmos ACO
An introduction to software engineering
Paralelismo a nivel de Instrucciones
OpenUP como proceso de desarrollo
GWT - Una introducción
Spring Web Services

Último (20)

PPTX
tuberculosis emehebsiydjxksijdjv jsyehdbKkd.pptx
PDF
Semana I. 25 -29-8-25 EPIDEMIOLOGIA.pdfj
PPTX
Referencias y citas del uso del lenguaje.
PDF
clase.pdfjddddddddddddddddddddddddddddddddddddd
PPTX
CAPACITACION CAJA CHICA 2024 EN AREQUIPA
PPTX
SÍNDROME DE BrrLUEBERRY MUFFIN BABY.pptx
PDF
0- TUTELA MARIA DEL PILAR SILVA VS EXPRESO SAN JUAN DE PASTO Y OTROS.pdf
PDF
GUÍA bbDhhE ACTIVIDADES SNSP 2025-1.pdf
PPTX
tolerancia del ejercicio.pptx , ,m ,mm ,
PDF
Ahorro_vs_Extravagancia.pdffffffffffffffff
PDF
14.5 RECURSO DE APELACION DCITAMEN 3435 Pilar Silva Notificado el 11 de julio...
PPTX
Cópia de ESTUDIO DE UN ÚNICO GRUPO ANTES Y DESPUÉS DE UNA INTERVENCIÓN.pptx
PPTX
2025 - PPT Infográfico de la Revista Adulto - Basta de Silencio - ESP (1).pptx
PPT
345125504-Presentacion-Ley-1178-Resumida.ppt
PDF
Presentacion webinar Documento Soporte 01 de agosto 2022.pdf
PPTX
Le damos la bienvenida a PowerPoint.pptx
PPTX
Colangitis-Aguda-Diagnostico-y-Tratamiento.pptx
PPT
DIAPOSITIVAS MITA.ppt direccion de derecho investigar
PDF
12.3- DERECHO PETICION EXAPA- JRCIN Y OTROS INFORME PSICOLOGICA FEBRERO 2022.pdf
PPTX
PONENCIA- JESUS HERNANDO AMADO -DAFP.pptx
tuberculosis emehebsiydjxksijdjv jsyehdbKkd.pptx
Semana I. 25 -29-8-25 EPIDEMIOLOGIA.pdfj
Referencias y citas del uso del lenguaje.
clase.pdfjddddddddddddddddddddddddddddddddddddd
CAPACITACION CAJA CHICA 2024 EN AREQUIPA
SÍNDROME DE BrrLUEBERRY MUFFIN BABY.pptx
0- TUTELA MARIA DEL PILAR SILVA VS EXPRESO SAN JUAN DE PASTO Y OTROS.pdf
GUÍA bbDhhE ACTIVIDADES SNSP 2025-1.pdf
tolerancia del ejercicio.pptx , ,m ,mm ,
Ahorro_vs_Extravagancia.pdffffffffffffffff
14.5 RECURSO DE APELACION DCITAMEN 3435 Pilar Silva Notificado el 11 de julio...
Cópia de ESTUDIO DE UN ÚNICO GRUPO ANTES Y DESPUÉS DE UNA INTERVENCIÓN.pptx
2025 - PPT Infográfico de la Revista Adulto - Basta de Silencio - ESP (1).pptx
345125504-Presentacion-Ley-1178-Resumida.ppt
Presentacion webinar Documento Soporte 01 de agosto 2022.pdf
Le damos la bienvenida a PowerPoint.pptx
Colangitis-Aguda-Diagnostico-y-Tratamiento.pptx
DIAPOSITIVAS MITA.ppt direccion de derecho investigar
12.3- DERECHO PETICION EXAPA- JRCIN Y OTROS INFORME PSICOLOGICA FEBRERO 2022.pdf
PONENCIA- JESUS HERNANDO AMADO -DAFP.pptx

Arquitectura y diseño de aplicaciones Java EE

  • 1. Arquitectura y Diseño de Aplicaciones Java EECarlos G. GavidiaAvances Tecnológicos SRL
  • 2. AgendaEvolución de la computación distribuidaArquitectura Java EESpring FrameworkAplicaciones en capas con Spring Framework
  • 3. Evolución de la Computación DistribuidaComputación distribuida: Dividir una aplicación en partes que se ejecutan simultáneamente en computadoras diferentesCada una de estas partes se denomina “nivel” (tier)Cada nivel brinda servicios a otras niveles clienteCada nivel puede dividirse a su vez en “capas” (layers)La mayoría de aplicaciones posee tres capasCapa de presentaciónCapa de negocioCapa de acceso a datos
  • 4. Arquitecturas de un nivelMainframes accedidos mediante terminalesLas interfaces de usuario, la lógica de negocio y la data estaban es una sola computadoraLos usuarios accedían mediante terminales o consolas
  • 5. Arquitectura de dos nivelesTambién conocida como “cliente-servidor”Los clientes ejecutan los programas de interfaz de usuarioLos servidores administran la lógica de negocio y la dataEjemplo: Aplicaciones Oracle FormsEn algunos casos, la lógica de negocio estaba contenida en el clienteClientes gruesos/gordos
  • 6. Arquitectura de tres nivelesClientes “delgados” (Browser)El servidor maneja la presentación, la lógica de negocio y la lógica de acceso a datosLa data de la aplicación se encuentra en un sistema de información empresarial (EIS)Como un DBMSLa lógica de negocio es accesible de manera remotaServidor = Servidor de Aplicaciones = Middleware
  • 7. Arquitectura de n-nivelesLos servidores Web se encargan de la presentación del contenidoLos servidores de aplicaciones contienen componentes de negocio accesibles remotamente
  • 8. Arquitecturas Java EEHacer aplicaciones de n-niveles tiene sus ventajasMejor utilización de recursosAsignar expertos a cada nivelTambién tiene sus dificultadesLos niveles se deben integrar eficientementeRequiere servicios: Transacciones, seguridadAdministrar conexiones costosas con:DBMSMiddleware orientado a mensajesEl uso de API’s del servidor middleware dificulta la mantenibilidad y limita la portabilidad
  • 9. Arquitectura J2EEEn 1999, Sun Microsystems lanza la plataforma J2EE para solucionar estos problemasBasada en la edición estándar de la plataforma Java“Programa una vez, despliega y ejecuta donde quieras”Apoyada por la comunidad Open Source, IBM, Oracle, BEA, etcActualmente, nos encontramos en Java EE 5.
  • 10. Contenedores Java EELos contenedores proveen un entorno de ejecución para componentes Java.También brindan los servicios de seguridad, transacciones, administración del ciclo de vida, caching, persistencia, comunicación en la redExisten dos tipos de contenedores:Contenedores Web: Almacenan componentes de presentación (JSP, Servlets)Contenedores EJB: Administran la ejecución de componentes EJB
  • 12. Contenedores Java EELos contenedores brindan servicios a las aplicacionesSe accede a los servicios a través de API’s Java EE:Java Transaccion APIJava MessageServiceJava Naming and Directory InterfaceJava Persistence APIJava Transaction APIGracias a esto se reducen los tiempos de desarrollo, y se simplifica el mantenimiento
  • 13. El modelo MVCPropuesto por TrygveReenskaug en 1979“Applications Programming in Smalltalk-80: How to use Model-View-Controller.”Divide a la aplicación en 3 componentes:El modeloadministra la data y aplica la lógica de negocioLa vista muestra la data de la aplicación y permite al usuariointeractuar con el sistemaEl controladorsirve de mediador entre la vista y el modelo
  • 15. Arquitectura Java EE y MVCLa tecnología Servlet sirve para la construcción de componentes controladorLos controladores Servlet pueden invocar a componentes EJB del modeloLa data obtenida o modificada se puede mostrar en pantalla mediante páginas JSPPodemos tener especialistas en cada tecnologíasMenos riesgos, mayor productividadLos componentes de cada capa son fácilmente manipulables
  • 17. Capas en una Aplicación Java EEUna arquitectura multi-capas es una extensión de una arquitectura MVCEn MVC: La capa de negocio contiene la capa de acceso a datosEn Java EE: La capa de acceso a datos es una capa independienteMuchos orígenes de datos: DBMS, ERP’s, MainframesLa capa de negocio se centra en la lógica de negocio
  • 18. Arquitectura y diseño de aplicaciones Java EEAplicaciones Java EE y Spring framework
  • 19. Spring FrameworkFramework open-sourcepara aplicaciones JavaYa lo puede usar .NET tambiénFue descrito por Rod Johnson en Expert One-on-One J2EE Design and Development el 2002
  • 20. ¿Porqué es importante?La plataforma Java EE estandarizó las aplicaciones empresarialesPero no le dio importancia a un modelo simple de programaciónConstruir aplicaciones de n-niveles requería demasiado esfuerzoLocalizar objetos EJB mediante JNDIManejo de Data Transfer ObjectsUsar EJB’s para soporte de transacciones implicaba crear una aplicacíón distribuidaEl API de Beans de Entidad era sumamente complejo
  • 21. ¿Porqué Spring es importante?Los desarrolladores buscaron otras alternativas:Apache Struts: MVC mediante el API ServletHibernate: Persistencia mediante POJO’s con configuración mínimaSpring es un frameworkmulti-nivelSe integra con los mejores frameworks de un nivelProvee un modelo de programación simple basado en POJO’sCon Spring AOP podemos implementar seguridad y transaccionesCon Spring JDBC-ORM nos permite una interacción simple con la Base de Datos
  • 22. Estructura de Spring FrameworkEstá dividido en varios módulos independientesProvee puntos de integración con otros frameworks
  • 23. Spring Core“Columna vertebral” de todo el frameworkTodos los módulos de Spring dependen de élTambién se le conoce como el contenedor IOCInversión del Control (IOC)Registramos objetos en el frameworkEl framework invoca los métodos de los objetos cuando sea necesarioEl control se ha invertido: Aplicación<-FrameworkIOC no es un concepto nuevo. Ejemplo: EJB’s
  • 24. Spring CoreTambién da soporte a la inyección de dependencias (DI)Cómo un objeto encuentra a los objetos que necesitaPodemos lograr DI a través de IOCEstrategias DIInstanciación directaFactoryHelperServicio de registro
  • 26. Fábrica de BeansImplementación sofisticada del patrón factorymethod (GoF)Crea y administra los objetos de la aplicaciónPermite configurar las clases de la aplicación y sus dependencias en archivos XMLPara acceder a un bean:Lo registramos en el archivo de configuración XMLIniciamos el contenedor IOCObtenemos el Bean de la fábrica de beans
  • 30. Contexto de aplicaciónFábrica de beans: Pool donde los objetos son creados y administrados por archivos de configuración.Un contexto de aplicación se la fábrica de beans más algunos servicios adicionales:Archivos properties para I18NSoporte AOP: Transacciones declarativas y seguridadPara aplicaciones Web (También se puede registrar un servletlistenerpara inicializar el contexto)
  • 31. Spring AOPNos permite separar las funcionalidades transversales del resto de la aplicaciónComo el manejo de transaccionesNos permite construir aspectos personalizados y configurarlos declarativamente
  • 32. Spring DAOLas aplicaciones Java EE utilizan el API JDBC para acceder a RDBMSEsto implica codificar:Obtención de la conexiónInstanciar PreparedStatementEnviar parámetros a la sentencia SQLEjecutar el PreparedStatementObtener la información del ResultSet y poblar DTO’sLiberar los recursos utilizadosCon Spring JDBC/DAO se remueve el código común y lo coloca en templates.Implementando el patrón templatemethodAgregamos el código personalizado a templatespre-establecidosSpring se encarga de liberar los recursos de base de datos
  • 33. Spring ORMPersistencia para objetos POJO en RDBMSExtensión de Spring DAOSe integra con los principales productos ORMHibernateJPATopLinkIBatis
  • 34. Web MVCBasado en el patrón arquitectónico MVCIntegrado con el API ServletSoporta diversas tecnologías de vista:JSPVelocityAdobe FlexSi no se desea trabajar con Spring MVC, se puede optar por:StrutsJSF
  • 35. Aplicación en capas con SpringPresentación:Spring MVC permite implementar el controladorProvee una capa de administración de vistasLógica de negocioLos componentes de negocio son clases Java planasSin depender de un framework específicoEjecutan lógica de negocio y manipulan data mediante los componente de la capa de integraciónCon Spring AOP se puede manejar transacciones, seguridad y auditoríaSe pueden exponer los objetos de negocio mediante servicios webIntegraciónInteractúa con el RDBMS mediante el API JDBC a través de objetos DAONos podemos apoyar en Spring DAO y/o Spring ORMTambién puede interactuar con ERP’s, mainframes o sistemas CRM
  • 37. BibliografíaPro Java™ EE Spring Patterns: Best Practices and Design Strategies Implementing Java EE Patterns with the Spring FrameworkDe DhrubojyotiKayal