lunes, 8 de noviembre de 2010

PRIMER PROYECTO CONJUNTO

Se sigue para este tipo de proyectos la siguiente estructura:




  • Porque usar un proyecto con Interfaces y otro con Implementaciones? Pues la respuesta es que cuando trabajemos con Criteria, Ibatis, HPQL sólo será necesario la implementacion al dao correspondiente.


CREACIÓN DE PROYECTOS MAVEN:

Cosas a tener en cuenta cuando se hacen los mismos:
  1. Cambiar el JRE, MAVEN por defecto introduce el 1.4, debemos meter el 1.6 (Build Path-->Edit-->Workspace default JRE(jre1.6)
  2. Deseleccionar "Enable project specific settings" en Java Compiler de properties del proyecto (boton derecho sobre el proyecto)
Todos nuestros proyectos serán "a simple project":
  1. modelotienda:
  • Group Id: es.cea
  • Artifact Id: modelotienda
  • Name: modelotienda
  • Description: aquí van las clases que representan el modelo de negocio
2. daoTiendaHibernateCriteriaImpl
  • Group Id: es.cea
  • Artifact Id: daoTiendaHibernateCriteriaImpl
  • Name: daoTiendaHibernateCriteriaImpl
  • Description: IMPLEMENTACIÓN del dao tienda con Criteria
3. daoTienda
  • Group Id: es.cea
  • Artifact Id: daoTienda
  • Name: daoTienda
  • Description: contendrá solamente las INTERFACES que usará los servicios de tiendaWeb
4. tiendaWebProfe
  • Group Id: es.cea
  • Artifact Id: tiendaWebSpringMVC
  • Package: war
  • Name: tiendaWebSpringMVC
  • Description: contendrá los CONTROLADORES y las VISTAS con Spring container y Spring MVC

A continuación habrá que añadir las dependencias de unos proyectos con otros. Solo será necesario ver las flechas en la figura:
  • Para que aparezca el jar con el que haremos la dependencia de un proyecto con otro:
Por ejemplo para modelotienda: boton derecho sobre pom.xml-->Run As-->Maven Package. Y en la carpeta target aparecerá el jar. Ahora podremos ver este jar desde los proyectos que serán dependientes de éste.
  • Ahora para introducir la dependencia:
Por ejemplo para daoTiendaHibernateCriteriaImpl: boton derecho sobre pom.xml-->Maven-->Add Dependency-->Buscar es.cea-->es.cea modelotienda-->0.0.1-SNAPSHOT......
  • Así sucesivamente: tiendaWebSpringMVC no depende de nadie, así que no será necesario crear el jar.

CONSIDERACIONES A TENER EN CUENTA
  • En modelotienda hay que añadir solo la dependencia: javax.persistence persistence-api
  • applicationContext.xml y web.xml se localizan en tiendaWebSpringMVC-->src-->main-->webapp. Para tenerlo más accesible: botón derecho sobre dicha carpeta-->build path-->use as source foulder
  • ASÍ QUEDA EL PROYECTO: Estructura árbol



EMPEZANDO A HACER EL PROYECTO:

Se presenta ahora la estructura a seguir en todo proyecto con esta filosofia:

Ejemplo práctico: La comunicación del ServicioImpl se hace con Dao(Interfaz)


VEAMOS UN EJEMPLO DE DESARROLLO DE NUESTRO PROCESO: Vamos a ver un ejemplo:

--BuscaClientesQueHanComprado controlador: En proyecto Maven no se puede crear un Servlet de forma automática, se debe crear a mano.

((Vemos como usamos la interfaz: ServicioCliente))

--Tendremos que dar de alta este controlador (SERVLET) en web.xml:


--Los bean sessionFactory y servicioCliente (y daoCliente que es llamado desde servicioCliente) deberían estar inyectados en applicationContext.xml

--Solo quedaría implementar la vista:



DONDE SE CARGA EL PROYECTO:

Basta con introducir la URL (una vez cargado el pom.xml) en la barra de direcciones del explorador.





SE REALIZA MODIFICACIONES Y TAREAS PEDIDAS EN CLASE en "tiendaWebProfe" es.cea.clientes

Una de las cosas importantes que se hacen son CascadeType: mirar el enlace. Unas de las consideraciones a tener en cuenta son:
  • session.persist(d); para guardar el elemento d.
  • session.merge(d); para actualizar (update).
Para realizar una prueba y considerando que tenemos que actualizar o guardar en la base de datos y queremos hacer una prueba:

Transaction tx=session.beginTransaction();
...............................
tx.commit();

Existen un monton de métodos generados en la pagina de inicio. Basta con cargar el proyecto y prestar atención a lo mencionado.

2 comentarios: