Spring FrameWork


Bueno uno de los primeros post fue sobre SEAM que es un framawork de trabajo para agilizar nuestros proyectos.

Voy ha esplicar un poco que framework voy ha usar , para mi desarrollo :D. Ya se que no es Ruby on Rails pero que le vamos hacer es lo que hay .

El objetivo principal de la arquitectura para el sistema a desarrollar, es la separación, de la forma más limpia
posible, las distintas capas de desarrollo, con especial atención a permitir un modelo de domino limpio, la
facilidad de mantenimiento y la evolución de las aplicación.
Otros elementos importantes han sido la facilidad del despliegue y el empleo de las mejores tecnologías
disponibles en la actualidad.
Para lograr esto se ha elegido el patrón MVC (Modelo-Vista-Controlador) que permite una separación limpia
entre las distintas capas de una aplicación.
Para la capa de presentación (la vista) se ha buscado framework que nos proporcionase una mayor
facilidad en la elaboración de pantallas, mapeo entre los formularios y sus clases en el servidor, la
validación, conversión, gestión de errores, traducción a las diversas lenguas autonómicas o extranjeras y,
de ser posible, que facilitase también el incluir componentes complejos (menús, árboles, ajax, etc) de una
forma sencilla, y sobre todo, fácil de mantener. Para esta capa se ha elegido Java Server Faces (JSF) y
IceFaces (AJAX para JavaServer Faces).
En la capa de negocio y persistencia, se ha decidido desde el primer momento no emplear EJB’s por su
elevado coste de desarrollo y mantenimiento así como su falta de flexibilidad y coste en tiempo para los
cambios.
Se optó por una solución basada en servicios (no necesariamente servicios web, aunque permitiendo su
integración de forma limpia) que trabajaban contra un modelo de dominio limpio. La persistencia de las
clases se sustenta en DAO’s (Objetos de Acceso a Datos), manteniendo aislada la capa de persistencia de
la capa de negocio. Tanto los servicios como los DAO’s así como el propio modelo son realmente POJOs
(clases simples de Java), con la simplicidad que conllevan y sin dependencias reales con ningún framework
concreto. Para realizar esta integración se ha elegido Spring.
Para la capa de persistencia se va a utilizar una herramienta ya existente, que permita realizar el mapeo
objeto-relacional de una forma cómoda pero potente, sin tener que implementarlo directamente mediante
JDBC. Esto último conllevaría, por ejemplo, un esfuerzo importante en un caso de cambio de base de datos, en la gestión de la caché, la utilización de carga perezosa (lazzy load), etc. La herramienta elegida es Hibernate.

La primera ventaja se deriva de la modularidad del diseño. Cada una de las partes empleadas
(JSF/IceFaces para la vista, Spring para la integración, Hibernate para la persistencia) es intercambiable de
forma sencilla y limpia por otras soluciones disponibles. Por ejemplo, para la vista se emplea Java Server
Faces, pero nada impide emplear también una aplicación de escritorio mediante Swing o SWT sin tener que
tocar ni una sola línea de código de las restantes capas. Es más, nada impediría que se pudiese disponer
de una aplicación con una parte de la capa de presentación en JSF y otra parte, para otro tipo de usuarios,
en Swing, ambas funcionando a la vez y compartiendo todo el resto del código (lógica de negocio,
persistencia, integración, seguridad, etc).
De igual forma, si se desean cambiar elementos de la capa de persistencia empleando otro framework para
el mapeo diferente de Hibernate, o sencillamente no utilizar ninguno, tan sólo serían necesarios cambios en
esa capa. De la misma manera se podrían sustituir cualquiera de las otras capas. El diseño se ha hecho reduciendo al mínimo posible las dependencias entre ellas.

Anuncios

Un comentario en “Spring FrameWork

  1. hola disculpa soy nuevo en programacion web me preguntaba si tienes algun ejemplo que recopile icefaces+spring+hibernate con java muchas gracias…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s