Hoy en día, el de­sa­rro­llo de apli­ca­cio­nes web es mucho más sencillo gracias a los fra­me­wo­r­ks y los ge­ne­ra­do­res de código que, como he­rra­mie­n­ta y base de código, ayudan a ahorrar mucho tiempo en el de­sa­rro­llo de proyectos. Pero, a veces, no es tan fácil encontrar y armonizar todos esos co­m­po­ne­n­tes entre ellos para que acaben fu­n­cio­na­n­do sin problemas en tu apli­ca­ción. El equipo de JHipster ha intentado dar una solución a este problema mediante la co­m­bi­na­ción de algunos de los fra­me­wo­r­ks más populares de de­sa­rro­llo frontend y backend en la pla­ta­fo­r­ma JHipster. Su proyecto se basa en el código abierto e integra co­m­po­ne­n­tes como Spring Boot, AngularJS o Bootstrap, que son im­pre­s­ci­n­di­bles a la hora de crear apli­ca­cio­nes web modernas y apli­ca­cio­nes basadas en mi­cro­se­r­vi­cios.

¿Qué es JHipster?

En co­la­bo­ra­ción con otros de­sa­rro­lla­do­res, Julien Dubois publicó en octubre de 2013 el proyecto JHipster (abre­via­tu­ra de “Java Hipster”). El nombre se inspira pri­n­ci­pa­l­me­n­te en el concepto mismo del generador de apli­ca­cio­nes web, y es que JHipster pretendía unir Java con las he­rra­mie­n­tas de de­sa­rro­llo web más populares de ese momento. Hoy en día, esta colección de fra­me­wo­r­ks tiene como mercado principal al sector em­pre­sa­rial y su objetivo es brindar a las empresas un alto grado de pro­du­c­ti­vi­dad durante el de­sa­rro­llo, al tiempo que se cuida en extremo la calidad de la apli­ca­ción final de­sa­rro­lla­da. El de­sa­rro­llo continuo de este proyecto está en manos de un equipo formado por más de 15 de­sa­rro­lla­do­res pri­n­ci­pa­les y cientos de co­la­bo­ra­do­res. El código de JHipster, que se di­s­tri­bu­ye bajo una licencia Apache 2.0, está di­s­po­ni­ble de manera gratuita para todo el mundo en GitHub.

Co­m­po­ne­n­tes pri­n­ci­pa­les de JHipster

JHipster nos ofrece un conjunto de he­rra­mie­n­tas para de­sa­rro­llar y diseñar los elementos co­rre­s­po­n­die­n­tes al frontend y también al backend de un proyecto de de­sa­rro­llo. Por ejemplo, el framework Spring Boot es la base más adecuada para obtener un robusto stack de Java del lado del servidor que nos permita co­ne­c­tar­nos a varias bases de datos, motores de vi­r­tua­li­za­ción y he­rra­mie­n­tas de se­gui­mie­n­to. Para co­ne­c­tar­se al frontend, utiliza una interfaz REST. A co­n­ti­nua­ción, puedes encontrar algunas de las opciones di­s­po­ni­bles del lado del servidor en JHipster:

  • Bases de datos: MariaDB, Po­s­t­gre­S­QL, Oracle, MySQL, MongoDB
  • Vi­r­tua­li­za­ción: Docker, Ku­be­r­ne­tes, AWS
  • Entornos de ejecución de pruebas: Karma, Cucumber
  • In­de­xa­ción: Ela­s­ti­c­Sea­r­ch
  • Cachés: Ehcache, In­fi­ni­s­pan
  • Sistemas de mo­ni­to­ri­za­ción: Pro­me­theus

En cuanto al de­sa­rro­llo de frontend, JHipster se basa pri­n­ci­pa­l­me­n­te en el framework Ja­va­S­cri­pt Angular.js y en la bi­blio­te­ca Ja­va­S­cri­pt React. Estos dos co­m­po­ne­n­tes pueden co­m­bi­nar­se con Twitter Bootstrap, el proyecto pionero de fra­me­wo­r­ks web, y con la plantilla web al­te­r­na­ti­va HTML5 Boi­le­r­pla­te. También existe la opción de ampliar JHipster uti­li­za­n­do el lenguaje de hoja de estilos SASS, lo que nos sirve para si­m­pli­fi­car el diseño mediante CSS3.

A la hora de utilizar todas estas so­lu­cio­nes in­no­va­do­ras y que el flujo de trabajo sea óptimo, contamos con he­rra­mie­n­tas como el generador de código Yeoman, el module bundler de Ja­va­S­cri­pt Webpack o el gestor de tareas Gulp (para Ja­va­S­cri­pt) así como Maven y Gradle (para Java).

De­sa­rro­llo con JHipster: ventajas

Como ya habrás deducido leyendo este artículo, JHipster se ca­ra­c­te­ri­za porque todos sus co­m­po­ne­n­tes se han diseñado para ser co­m­pa­ti­bles entre ellos. Por ello, si quieres programar tu proyecto de de­sa­rro­llo web en Java, te re­co­me­n­da­mos echar un vistazo a esta suite. Con JHipster evitamos muchos ob­s­tácu­los asociados al de­sa­rro­llo y, además, co­n­se­gui­mos si­m­pli­fi­car y unificar el proceso de pro­gra­ma­ción completo, tanto si se trata del de­sa­rro­llo de una apli­ca­ción desde cero o de las re­vi­sio­nes po­s­te­rio­res y mejoras del código. JHipster pone a nuestro alcance las he­rra­mie­n­tas de de­sa­rro­llo que ne­ce­si­ta­mos y lo hace de una forma fácil y directa para que podamos ahorrar muchísimo tiempo uti­li­za­n­do su colección de fra­me­wo­r­ks.

JHipster, además, nos permite generar en muy poco tiempo una apli­ca­ción web que soporte ope­ra­cio­nes CRUD y presenta un código fuente muy bien es­tru­c­tu­ra­do. Entre algunas de sus ca­ra­c­te­rí­s­ti­cas más útiles, de­s­ta­ca­mos la gestión de usuarios y la in­te­r­na­cio­na­li­za­ción.

JHipster: tutorial de in­s­ta­la­ción del paquete JHipster y primeros pasos

Ahora que ya sabes en qué consiste JHipster, puedes seguir nuestro tutorial para aprender a instalar Co­lle­c­tion Framework. Además, te contamos cuáles son los primeros pasos que debes dar a la hora de empezar a utilizar los fra­me­wo­r­ks de código.

Paso 1: cómo instalar JHipster

Existen varias opciones a la hora co­n­fi­gu­rar JHipster. Una de ellas es acceder a la “de­ve­lo­p­me­nt box”. Está basada en el software Vagrant y ejecuta JHipster en una máquina virtual Ubuntu. Si eres un seguidor de Docker, te resultará más in­te­re­sa­n­te utilizar la opción Co­n­te­ne­dor JHipster di­s­po­ni­ble en GitHub, que te permitirá ejecutar la suite de fra­me­wo­r­ks en Docker. Por supuesto, también puedes realizar una in­s­ta­la­ción local clásica en tu propio servidor. Para ello, puedes utilizar el ad­mi­ni­s­tra­dor de paquetes npm o Yarn. El equipo de de­sa­rro­llo re­co­mie­n­da la última opción y, por esta razón, que co­n­s­ti­tu­ye la base del proceso de in­s­ta­la­ción que vamos a comentar en este tutorial de JHipster. Estos son los pasos a seguir:

  1. Descarga los paquetes de in­s­ta­la­ción para Java SE 8 de la página de inicio de Oracle y, a co­n­ti­nua­ción, instala el entorno de tiempo de ejecución.
  2. Descarga e instala los paquetes de in­s­ta­la­ción Node.js del proveedor. El equipo de JHipster re­co­mie­n­da la versión de 64 bits con soporte a largo plazo (LTS).
  3. Instala Yarn en tu servidor siguiendo las in­s­tru­c­cio­nes es­pe­cí­fi­cas para tu sistema en el di­re­c­to­rio de in­s­ta­la­ción de la página de inicio de Yarn.
Nota

Si ya tienes in­s­ta­la­das en tu ordenador algunas de las apli­ca­cio­nes que estamos co­me­n­ta­n­do, puedes saltarte estos pasos.

En este momento, abre el ad­mi­ni­s­tra­dor del paquete para obtener e instalar la apli­ca­ción de ge­ne­ra­ción Yeoman y, fi­na­l­me­n­te, JHipster. Tienes que in­tro­du­cir los si­guie­n­tes comandos en orden:

yarn global add yo
yarn global add generator-jhipster
Nota

Si utilizas JHipster Online existe la opción de no tener que instalar el paquete de framework. El servicio se encarga de generar una apli­ca­ción completa de JHipster que puedes alojar en una cuenta de GitHub y, también, puedes descargar en formato ZIP.

Paso 2: crear nuestro primer proyecto

Una vez que tenemos todos los co­m­po­ne­n­tes in­s­ta­la­dos, podemos ponernos manos a la obra con el generador JHipster y crear un primer proyecto de prueba. Para ello, lo primero es disponer de un di­re­c­to­rio principal (que vamos a llamar en este caso “jhipster-ejemplo”) en el que vamos a almacenar nuestros archivos. También podemos hacerlo eje­cu­ta­n­do la siguiente línea de comando:

mkdir jhipster-ejemplo

A co­n­ti­nua­ción, ve al di­re­c­to­rio que acabas de crear y ejecuta el comando de inicio de JHipster:

yo jhipster

El generador te va a hacer una serie de preguntas para es­ta­ble­cer el tipo de apli­ca­ción y se­le­c­cio­nar las ca­ra­c­te­rí­s­ti­cas y el software que prefieres. Esto sirve para que puedas es­ta­ble­cer, por ejemplo, qué mecanismo de caché va a im­ple­me­n­tar­se o qué he­rra­mie­n­tas prefieres para el diseño del backend (Gradle o Maven). También podrás, siempre que tu proyecto lo requiera, activar el soporte de in­te­r­na­cio­na­li­za­ción y se­le­c­cio­nar el idioma principal y el idioma se­cu­n­da­rio. En la mayoría de los casos, nos valdrá con las opciones se­le­c­cio­na­das por defecto para ejecutar un proyecto de prueba.

Finaliza la co­n­fi­gu­ra­ción según tus pre­fe­re­n­cias para poder pasar al proceso de ge­ne­ra­ción. Si todo marcha co­rre­c­ta­me­n­te, recibirás un feedback au­to­má­ti­co en pocos minutos en el que se te informará de que las apli­ca­cio­nes de cliente y de servidor han sido generadas con éxito.

Paso 3: iniciar la apli­ca­ción del servidor e inicio de sesión backend

Ya tenemos el esqueleto básico de nuestra apli­ca­ción web, creado gracias a JHipster, y hemos al­ma­ce­na­do el código en nuestro di­re­c­to­rio. Uti­li­za­n­do el di­re­c­to­rio que acabamos de crear, podemos iniciar una instancia de servidor basada en Spring Boot. A la hora de de­te­r­mi­nar qué comando vamos a utilizar, es necesario tener en cuenta qué he­rra­mie­n­ta de diseño hemos elegido para el backend. Si hemos elegido Maven, tendremos que ejecutar el co­m­po­ne­n­te del servidor uti­li­za­n­do el archivo Maven Wrapper de JHipster mediante el siguiente comando:

./mvnw (en macOS/Linux)
mvnw (en Windows)

En cambio, si hemos elegido Gradle, debemos utilizar el siguiente comando:

./gradlew (en macOS/Linux)
gradlew (en Windows)
Nota

Si ya tienes Maven o Gradle in­s­ta­la­dos en tu sistema, te bastará con utilizar los comandos “mvn” o “gradle”.

En caso de que no hayas es­pe­ci­fi­ca­do un puerto es­pe­cí­fi­co al generar tu proyecto JHipster (el puerto 8080 es el que se reserva por defecto), puedes hacer una llamada al backend in­tro­du­cie­n­do la dirección "http://localhost:8080" en tu navegador habitual. Serás dirigido a una página de inicio desde la que podrás iniciar sesión en el Backend.

Este sitio web ofrece in­fo­r­ma­ción relativa tanto al acceso en modo ad­mi­ni­s­tra­dor como al acceso como usuario básico:

Cuenta de ad­mi­ni­s­tra­ción Cuenta de usuario
Nombre admin user
Co­n­tra­se­Ã±a admin user

Paso 4: ad­mi­ni­s­trar tu proyecto JHipster

Al acceder a tu cuenta de ad­mi­ni­s­tra­dor, la barra del menú de la instancia del servidor te mostrará dos elementos “Ad­mi­ni­s­tra­ción” y “Entidades”. Con el primero, podrás ad­mi­ni­s­trar tu apli­ca­ción web. En­co­n­tra­rás las si­guie­n­tes opciones:

  • Ad­mi­ni­s­tra­ción de usuarios: a través de la ad­mi­ni­s­tra­ción de usuarios, podrás crear, editar y eliminar los perfiles de los usuarios que tienen acceso a tu apli­ca­ción JHipster. Podrás también, entre otras cosas, asignar roles.
  • Métricas de la apli­ca­ción: en el apartado de métricas, en­co­n­tra­rás in­fo­r­ma­ción sobre el uso de la memoria, las so­li­ci­tu­des de HTTP entrantes y las es­ta­dí­s­ti­cas de servicio y al­ma­ce­na­mie­n­to de caché.
  • Estado de la apli­ca­ción: si entras en “Estado”, podrás comprobar el estado de las funciones generales de los co­m­po­ne­n­tes de la apli­ca­ción, como el espacio del disco duro o las bases de datos.
  • Co­n­fi­gu­ra­ción: al entrar en “Co­n­fi­gu­ra­ción”, accederás al menú con las opciones generales de co­n­fi­gu­ra­ción de tu proyecto JHipster.
  • Au­di­to­rías: las au­di­to­rías te darán un resumen de los intentos de acceso exitosos (AU­THE­N­TI­CA­TION_SUCCESS) y los fallidos (AU­THE­N­TI­CA­TION_FAILURE), aportando también in­fo­r­ma­ción sobre la hora y el usuario.
  • Pro­to­co­los / Co­ne­xio­nes: in­fo­r­ma­ción detallada sobre los me­ca­ni­s­mos de conexión activos. Además, podrás definir niveles de conexión (ad­ve­r­te­n­cias, in­fo­r­ma­ción, se­gui­mie­n­to, mensajes de error, etc.).
  • Resumen de la API: en este apartado podrás ver todas las in­te­r­fa­ces REST de tu apli­ca­ción in­clu­ye­n­do los códigos de control de esas API (y op­cio­na­l­me­n­te podrás ampliar cada una de las API).
  • Base de datos: por último, el backend de JHipster nos aporta una interfaz para que nuestras bases de datos puedan ejecutar pruebas y es­ta­ble­cer co­ne­xio­nes.

En la pestaña de “Idioma”, podrás cambiar el idioma de la interfaz de usuario de tu instancia de servidor Spring Boot.

XRREt1KB4Y8.jpg Para mostrar este video, se requieren cookies de terceros. Puede acceder y cambiar sus ajustes de cookies aquí.

Paso 5: crear nuevas entidades

En el paso anterior, ya hemos me­n­cio­na­do cuál es el segundo elemento más im­po­r­ta­n­te del menú: el co­m­po­ne­n­te llamado “Entidades”. Estas unidades, que puedes ver, editar o eliminar cuando quieras (mediante el concepto CRUD del que también te hemos hablado), te pro­po­r­cio­nan un input para tus bases de datos o, lo que es lo mismo, input de contenido para tu proyecto. Existen varias maneras di­fe­re­n­tes de crear entidades en JHipster; la solución estándar es uti­li­za­n­do el su­b­ge­ne­ra­dor de entidades que se controla mediante la línea de comandos. La sintaxis de este generador es la siguiente:

jhipster entity <entityname> -- [options]</entityname>

Te re­co­me­n­da­mos ejecutar “jhipster entity –help” para que puedas echar un vistazo a todas las po­si­bi­li­da­des que nos ofrece esta he­rra­mie­n­ta. Con este comando, podrás acceder a una lista con todas las opciones di­s­po­ni­bles (en la siguiente captura de pantalla, te lo mostramos):

Otra opción es crear las entidades uti­li­za­n­do una he­rra­mie­n­ta gráfica. Hay dos formas de co­n­se­gui­r­lo: la primera es mediante el editor UML JHipster UML que puedes encontrar en GitHub y otra es la apli­ca­ción en línea JDL-Studio, que está basada en el lenguaje de dominio es­pe­cí­fi­co JDL (JHispter Domain Language).

Ir al menú principal