Este documento describe los pasos para crear un proyecto que integra Spring y Hibernate. Primero, se crea un proyecto web que utiliza Spring MVC, Hibernate y JavaServer Faces. Luego, se generan clases POJO a partir de las tablas de la base de datos usando ingeniería inversa de Hibernate. También se crean las capas de acceso a datos, lógica de negocios y presentación. Finalmente, se configuran los archivos necesarios como applicationContext.xml y web.xml para integrar todos los componentes.
Copyright:
Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
0 calificaciones0% encontró este documento útil (0 votos)
219 vistas22 páginas
Este documento describe los pasos para crear un proyecto que integra Spring y Hibernate. Primero, se crea un proyecto web que utiliza Spring MVC, Hibernate y JavaServer Faces. Luego, se generan clases POJO a partir de las tablas de la base de datos usando ingeniería inversa de Hibernate. También se crean las capas de acceso a datos, lógica de negocios y presentación. Finalmente, se configuran los archivos necesarios como applicationContext.xml y web.xml para integrar todos los componentes.
Este documento describe los pasos para crear un proyecto que integra Spring y Hibernate. Primero, se crea un proyecto web que utiliza Spring MVC, Hibernate y JavaServer Faces. Luego, se generan clases POJO a partir de las tablas de la base de datos usando ingeniería inversa de Hibernate. También se crean las capas de acceso a datos, lógica de negocios y presentación. Finalmente, se configuran los archivos necesarios como applicationContext.xml y web.xml para integrar todos los componentes.
Copyright:
Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
0 calificaciones0% encontró este documento útil (0 votos)
Este documento describe los pasos para crear un proyecto que integra Spring y Hibernate. Primero, se crea un proyecto web que utiliza Spring MVC, Hibernate y JavaServer Faces. Luego, se generan clases POJO a partir de las tablas de la base de datos usando ingeniería inversa de Hibernate. También se crean las capas de acceso a datos, lógica de negocios y presentación. Finalmente, se configuran los archivos necesarios como applicationContext.xml y web.xml para integrar todos los componentes.
Copyright:
Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 22
Preparado por Jazna Meza Hidalgo
Sun Certified Java Programmer SCJP 5.0
Pgina 1 de 22
IA1ECRACIA SPRIAC + HIBERAA1E OBJETIVO
Creacion de un provecto de integracion de SPRING HIBERNATE
PROBLEMA
CONCEPTOS PREVIOS
Esquema de trabajo de SPRING MVC
CREACIN DE PROYECTO
Creamos un proyecto Web indicando que los frameworks que se utilizarn
sern: Spring MVC, Hibernate y Java Server Faces. Recordar que al seleccionar Hibernate se debe seleccionar la conexin a la base de datos que contiene las tablas del tutorial.
En mi caso el proyecto lo he llamado SpringHibernate lo que deja la distribucin de los archivos del proyecto como se indica en la siguiente
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 2 de 22 figura. Algunos de estos archivos sern modificados a lo largo del tutorial, as como se agregaran otros.
CREACIN DE PAQUETES ORGANIZACIN DE CLASES
Se van a crear los siguientes paquetes: bean, bo, dao, negocio.
CREACIN DE ARCHIVOS POJO
Se van a crear las clases a partir del mapeo de las tablas que contiene el modelo de datos con el cual se va a trabajar. Las clases POJO debern quedar en el paquete negocio.
Ahora creamos el asistente para la ingeniera inversa:
No cambiamos ningn valor y hacemos clic en Next:
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 3 de 22
Se seleccionan las tablas que forman parte del modelo y clic en Finish
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 4 de 22 Antes de continuar, y para no olvidarlo despus, se hacen los cambios en el XML de la configuracin de Hibernate:
Ahora si estamos en condiciones de generar las clases que representan el mapeo entre el mundo relacional y el orientado a objetos:
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 5 de 22
Seteamos algunos valores y clic en Finish
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 6 de 22 Las clases se han creado y la estructura de los archivos de mi proyecto es:
Hasta ahora hemos considerado en nuestro proyecto la fuente de los datos, lo que viene a corresponder a la parte de modelo (la M de MVC) de la arquitectura de Spring. Ahora debemos trabajar en la vista (la V de MVC) y el controlador (la C de MVC).
LA CAPA DE ACCESO A DATOS (DAO)
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 7 de 22
La clase ActorDAO se extiende de la clase HibernateDaoSupport lo que facilitar el acceso a los datos almacenados en la base de datos. Es conveniente hacer notar que slo invocando al mtodo getHibernateTemplate() se pueden implementar las operaciones sobre la base de datos, en este caso, actualizar registro (mtodo saveOrUpdate()) y listar (mtodo find())
LA CAPA DE LGICA DE NEGOCIO Y EL MARCO DE TRABAJO SPRING
Los objetos y servicios de negocio existen en la capa de lgica de negocio. Un objeto de negocio no slo contiene datos, tambin la lgica asociada con ese objeto especfico. En la aplicacin de ejemplo se han identificado dos objetos de negocio: Actor y Pelcula.
Los servicios de negocio interactan con objetos de negocio y proporcionan una lgica de negocio de ms alto nivel. Se debera definir una capa de interfaz de negocio formal, que contenga los interfaces de servicio que el cliente utilizar directamente. POJO, con la ayuda del marco de trabajo Spring, implementar la capa de lgica de negocio de la aplicacin. Hay dos servicios de negocio: IActorBO contiene la lgica de negocio relacionada con el manejo de los actores, y IPeliculaBO contiene la lgica de manejo de las pelculas.
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 8 de 22
Ahora definimos la clase para implementar los servicios:
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 9 de 22
NOTA. Las interfaces/clases anteriores DEBERN estar incluidas en el paquete bo.
CLASES DEL NEGOCIO (MODELO/NEGOCIO)
Estas clases son las que fueron generadas a travs del proceso de ingeniera inversa.
CAPA DE PRESENTACIN
La implementacin de la capa de presentacin implica crear las pginas JSP, definir la navegacin por las pginas, crear y configurar los beans de respaldo, e integrar JSF con la capa de lgica de negocio.
Primero vamos a revisar la clase que define el bean:
Algunos mtodos getter/setter:
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 10 de 22
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 11 de 22
Un mtodo importante:
Finalmente, el mtodo para limpiar el formulario:
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 12 de 22 ARCHIVOS DE CONFIGURACIN
A continuacin se detallarn los archivos de configuracin con los cuales se trabajar.
Archivo applicationContext.xml
Contiene las definiciones de los beans que usar la aplicacin. Hay una parte que viene comentada en el archivo que tiene el proyecto y se va a descomentar, que consiste en la definicin de dos beans que tienen que ver con la fuente de datos:
Como se aprecia en el cdigo anterior se pueden definir los parmetros de conexin con la base de datos en un archivo llamado jdbc.properties, as es que creamos un archivo de properties en nuestro proyecto:
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 13 de 22 El contenido de este archivo DEBE ser el que se indica a continuacin:
En caso de que haya configurado el motor de base de datos para que no utilice password, entonces simplemente NO INCLUYA LA LNEA.
Ahora agregamos el bean para la configuracin de la base de datos propiamente tal y tenemos:
Lo anterior define un bean llamado sessionFactory el cual contiene trs propiedades:
dataSource hibernateProperties zappingResources
El property (propiedad) dataSource usa como referencia el bean definido anteriormente. En el caso del property hibenateProperties tiene los tems (key) que se encuentran en el archivo de configuracin de Hibernate (que se encuentra en el archivo hibernate.cfg.xml. Finalmente, el property mappingResources tiene la lista de XML de mapeo entre las clases y las tablas (que fueron generados al principio del tutorial).
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 14 de 22 Archivo ActorBean.xml
Contiene las definiciones de los beans asociados a la capa de lgica de negocio y la capa de acceso a datos. El contenido de este archivo DEBER ser:
En el se crean los beans asociados a las clases de lgica de negocio y acceso a datos. La lgica dice que la capa de lgica de negocios se conecta con la capa de acceso a datos y de ah el vnculo entre estos beans.
En este caso cada bean tiene asociada una clase y las property que se definen tienen que ver con los atributos que se estn seteando. Si revisamos la clase ActorBO tiene un atributo llamado ActorDAO que es el que estamos seteando. Algo similar sucede con el atributo sessionFactory de la clase ActorDAO, la diferencia es que este atributo viene heredado desde la clase HibernateDaoSupport de la cual est extendiendo.
Ahora vamos a agregar las siguientes lneas al archivo applicationContext.xml:
Con lo anterior estamos importando el contenido del XML con la definicin de los bean asociados al Actor.
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 15 de 22 Archivo dispatcher-servlet.xml
Contiene la definicin de los beans con los cuales va a trabajar la aplicacin. Es un archivo generado al momento de crear el proyecto y ahora le vamos a agregar los beans que acabamos de definir. Las lneas que se deben AGREGAR AL FINAL DEL ARCHIVO son:
Archivo faces-config.xml
Contiene la configuracin para trabajar con JSF. Tambin es un archivo generado cuando se crea el proyecto y le agregaremos algunos tag.
Ac estamos definiendo el bean que va a trabajar con la aplicacin que tiene asociada la clase ActorBean que fue descrita anteriormente y seteamos el atributo (property) actorBO con el bean definido anteriormente.
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 16 de 22 Archivo web.xml
Contiene la configuracin general del proyecto, tambin es un archivo generado y ac slo vamos a modificar el archivo de bienvenida que, por defecto, viene seteado con redirect.jsp y lo cambiaremos por frmActor.jsp:
CAPA DE PRESENTACIN
Ahora slo falta crear la capa de presentacin para poder probar todo. Vamos a crear una pgina similar a:
La siguiente figura muestra algunos elementos que forman parte de la interfaz.
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 17 de 22
Ahora miremos un poco el cdigo que hay:
La pgina est formada por una vista principal <f: view> la que contiene dos formularios <h: form> uno para los datos y otro para la tabla. Vamos a revisar el formulario de los datos:
El formulario est formado por un panel de tres columnas <h: panelGrid>. Las tres columnas son para las etiquetas, los campos de texto <h: inputText> y el mensaje <h: message>. Fuera del panel est el botn que va a enviar el formulario al servidor <h: commandButton>.
Lo interesante ac es la propiedad value de los inputText, ya que esta propiedad tiene el valor asociado al bean que hemos definido y declarado en los archivos de configuracin (recordar que lo llamamos actor en el archivo faces-config.xml). Usando la notacin (.) accedemos a los
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 18 de 22 atributos y mtodos definidos en el bean (lo que en el fondo est definido en la clase).
En el caso de la entrada asociada a la edad se tiene una propiedad llamada converter que nos va a permitir validar cuando se ingresan letras y algo similar sucede con la propiedad required que obliga a que los campos tengan valores antes de ser enviados al servidor.
Para el caso del botn se asocia a la propiedad action la llamada al mtodo addActor() que se encuentra en el bean actor: #{actor.addActor}.
Ahora revisemos el segundo formulario (asociado a la tabla):
En este extracto de cdigo es posible apreciar que la tabla tiene una propiedad llamada binding que se relaciona con los datos que sern incluidos en la tabla. En este caso es el atributo tabla del bean actor, revisemos un poco esa parte del cdigo para poder entender eso del binding.
La clase ActorBean tiene, entre otros, estos atributos:
Y entre otros mtodos estn:
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 19 de 22
Y como se ve en el mtodo getLista() usa los servicios de la clase ActorBO (a travs de su atributo actorBO) para obtener la lista de actores (contenido de la tabla).
Cuando en el binding del archivo JSP tenemos #{actor.lista} estamos llamando al mtodo getLista() (ac sirve el hecho de usar la nomenclatura Bean para definir los mtodos). La explicacin de la propiedad value de los <h: outputText> salvo que ahora estamos haciendo referencia a un objeto (llamado a) definido en la propiedad var del <h: dataTable>. En este caso como se est asociando a un outputText se llama al mtodo get del atributo que se est vinculando.
Finalmente, est la explicacin del <h: commandLink>:
Cuya propiedad action est asociada al mtodo seleccionLista() que se encuentra en la clase ActorBean (asociada al bean actor). Ese mtodo selecciona el objeto desde la tabla y modifica los atributos del bean y cuando la pgina se recarga ser ese el objeto que est cargado en memoria y sus datos se desplegarn en los <h: inputText> del formulario.
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 20 de 22 LTIMO CAMBIO Y A EJECUTAR EL PROYECTO
El ltimo cambio que debemos realizar es en las propiedades del proyecto segn como lo indica la siguiente figura:
Ahora ejecutamos el proyecto y podemos visualizar el detalle del archivo LOG del servidor y si todo anduvo bien podremos ver cmo se visualiza nuestra humilde y sencilla pgina en el navegador. Adems podemos ver nuestro proyecto alojado en el servidor, abriendo la consola de administracin del servidor:
Con lo que llegars a:
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 21 de 22
Donde debes ingresar el usuario y clave de acceso del servidor para luego visualizar la interfaz de la consola en donde, entre muchas otras cosas, podremos visualizar el detalle de las aplicaciones alojadas:
En este caso el proyecto alojado muestra las siguientes caractersticas:
Preparado por Jazna Meza Hidalgo Sun Certified Java Programmer SCJP 5.0 Pgina 22 de 22
TRABAJO FUTURO
En la siguiente entrega veremos como mejorar y potenciar la interfaz usando otros controles de JSF y agregar la funcionalidad asociada a las pelculas.