Ir al contenido principal

Arquetipo Maven para Spring + JSF2 (PrimeFaces)

Simplificando el trabajo con Maven

La creación de un proyecto desde cero con Spring + JSF2 (Primefaces) + JDBC, aunque usemos Maven, no es una tarea fácil y rápida. Si bien, una vez que se conoce lo que hay que hacer nos damos cuenta de que es algo mecánico que, tal vez, se podría automatizar.

Como sabemos, Maven usa sus arquetipos para la creación y el modelado de proyectos.

¿Podríamos hacer un arquetipo que cubriera nuestras necesidades para los proyectos con Spring+Primefaces?

Buscando un poco he encontrado que ya hay gente que se ha planteado esto y es lo que vamos a ver en este manual, preparando nuestro sistema desde cero.

Instalación de Maven

Nos vamos a la Web de descarga de Apache Maven y nos descargamos la versión 3.2.2 que en este momento es la más actual. Para ello accedemos a http://maven.apache.org/download.cgi


La descomprimimos en el la ubicación donde queremos dejar Maven, para nuestro caso que es Windows lo hacemos en C:\ApacheSoftware\


Añadimos una variable de entorno M2_HOME


Verificamos o creamos la variable JAVA_HOME si no la tenemos


Añadimos el directorio bin de Maven al path



Comprobamos que funciona, abrimos una consola y ejecutamos mvn –version


Y con esto ya tenemos instalado Maven.

Instalar Arquetipo Spring + JSF2 (PrimeFaces) + JPA2 (Hibernate)

Como hemos comentado, la idea es hacernos la vida mas fácil a la hora de crear nuestros proyectos para trabajar con Spring+Primefaces.

Buscando por la red, encontramos en un repositorio github unas platillas ya preparadas.

Accedemos a https://github.com/sivaprasadreddy/maven-archetype-templates y nos descargamos todas las plantillas, aunque la que nos interesa es quickstart-spring-jsf-jpa


Descomprimimos la descarga en una carpeta, abrimos una consola y nos ubicamos dentro de la carpeta donde hemos descomprimido las plantillas. Ejecutamos desde la consola:

cd quickstart-spring-jsf-jpa
mvn clean
mvn archetype:create-from-project
cd target/generated-sources/archetype
mvn clean install


Si todo ha ido bien, nos mostrará un mensaje de Build Success


Y con esto ya tenemos nuestra plantilla Maven instalada.

Creando un nuevo proyecto STS

Abrimos Spring Tool Suite y creamos un nuevo proyecto Maven y en arquetipo filtramos por com.sivalabs. Nos aparece el arquetipo que hemos instalado, lo seleccionamos y continuamos creando el proyecto.


Añadimos los datos de nuestro proyecto Maven y finalizamos.

Estructura del proyecto 

Nos crea una estructura de proyecto con clases de ejemplo para que podamos empezar. La estructura de paquetes se divide en entidades (modelo de negocio), repositorios (DAO), servicios (capa de servicios) y Web (@ManagedBean). 


Dentro de la carpeta recursos podemos encontrar los ficheros de configuración, aquí debemos modificar el application.properties para conectarnos a nuestra base de datos. Ya viene preconfigurado para trabajar con log4j.

Dentro de la carpeta webapp, dentro de WEB-INF nos encontramos el resto de ficheros de configuración que permiten la comunicación entre Spring y JSF2 (PrimeFaces). Aquí mismo, en la carpeta templates, tenemos una plantilla que se aplican a las vistas y que podemos modificar junto con el CSS para personalizar el aspecto de nuestras vistas. Esto se consigue con la etiqueta template="/WEB-INF/templates/template.xhtml".


Como siempre, si queremos cambiar la plantilla de PrimeFaces, nos vamos al pom.xml y modificamos el artifacId con el theme que queremos aplicar.

<dependency>
       <groupId>org.primefaces.themes</groupId>              
       <artifactId>afterwork</artifactId>
       <version>${primefaces-theme.version}</version>
</dependency>


@ocascal

Comentarios

Entradas populares de este blog

Spring + Primefaces + JDBC

Por Qué Spring Uno de sus propósitos principales es permitir a los programadores centrarse en la parte más importante de todas: modelar e implementar requerimientos de negocio. Otro de sus propósitos es hacer seguir las mejores prácticas de programación de una manera sencilla. Spring se acopla a tu aplicación sin obligarte a modificar tu código para utilizar las funcionalidades y beneficios que ofrece. Para usar Spring no es imprescindible implementar un interfaz propia de Spring o heredar de una clase propia, lo que significa que Spring estará ahí pero tus clases serán Java puras. Como mucho, tus clases tendrán anotaciones propias de Spring, pero no dejan de ser anotaciones por lo que tu clase será reutilizable en cualquier momento, sin cambios. Gracias a Spring, nuestro código Java puede ser más limpio, elegante y reutilizable. Elegante y reutilizable ya que la filosofía de Spring nos guía a programar orientado a interfaces, de modo que toda nuestra aplicación sea altam