Introduzione
Il termine “JHipster” deriva da “Java Hipster” perché il suo obiettivo iniziale era quello di utilizzare tutti gli strumenti moderni più cool con una forte attenzione sulla produttività degli sviluppatori.
JHipster fornisce gli strumenti per generare un progetto con uno stack Java sul lato server basato su Spring e un front-end web evoluto sul lato client con AngularJS e Bootstrap.
Che cosa è JHipster
JHipster è un code generator, o meglio, un application generator usato per la creazione guidata di una moderna web application basata su Spring Boot e AngularJS.
JHipster è inoltre basato sul tool di scaffolding di Yeoman e sfrutta strumenti di build di pacchetti come Gulp, NPM e Bower.
Installazione di JHipster
Le precondizioni per utilizzare JHipster sono le seguenti:
- utilizzare la versione 8 di Java [4]
- Git [5]
- js [6]
- Maven [7]
Dopo avere installato questi tool bisogna lanciare da riga di comando i seguenti comandi.
Per Yeoman:
npm install –g yo
Per Bower
npm install –g bower
Per Gulp:
npm install –g gulp
A questo punto si può finalmente installare JHipster:
(0)npm install -g generator-jhipster
Un’applicazione di esempio: jhmoka
Per mettere in evidenza le potenzialità di JHipster creamo una semplice applicazione di esempio: jhmoka (JHipster MokaByte). Si tratta di una rubrica per poter censire gli autori di Mokabyte.
Primi passi
Il primo step è creare una directory ad hoc per l’applicazione di esempio di nome jhmoka:
(1) mkdir jhmoka
Il secondo step è lanciare JHipster nella directory jhmoka appena creata.
(2) yo jhipster
Verrà presentata la shell di JHipster che guiderà la creazione della web application tramite una serie di domande relative alla configurazione.
Le caratteristiche di jhmoka
Nel nostro esempio vogliamo generare un’applicazione Web “monolitica” che:
- utilizzi come naming delle classi mokabyte.jhmoka;
- utilizzi il DBMS MySQL;
- faccia uso di EHCache;
- gestisca l’internazionalizzazione (i18n) in inglese e italiano;
- utilizzi Maven come tool di software configuration management.
Fatto questo, JHipster avvia la generazione di quanto richiesto. Alla fine della generazione bisogna invocare il comando per lanciare Maven all’interno della directory jhmoka.
(3) mvnw.cmd
Terminata l’esecuzione di Maven, l’applicazione jhmoka generata sarà disponibile al seguente URL:
(4) http://127.0.0.1:8080
Una volta inserito l’URL, compare la home page.
Dalla home page è possibile fare il login utilizzando come utente e password “admin” selezionando in alto a destra Account e Sign In.
Creare le entità
A questo punto è possibile creare delle entità (Entity) nella nostra applicazione mediante il comando da riga di comando sempre all’interno della home directory jhmoka.
(5) yo jhipster:entity Author
Per ogni campo, il tool JHipster richiederà:
- il nome;
- il tipo;
- il controllo sintattico che si vuole implementare;
- la tipologia del controllo sintattico.
Ad esempio, nel nostro caso vogliamo creare un’entità di nome Author (l’autore di articoli di MokaByte) con:
- nome articolista Mokabyte (name);
- cognome articolista Mokabyte (surname);
- email articolista Mokabyte (email).
Richiediamo che il campo name sia una stringa e richiediamo i seguenti due controlli sintattici usando la barra spaziatrice:
- obbligatorietà del campo e una lunghezza minima (figura 6);
- lunghezza minima di 2 caratteri (figura 7).
Stesso discorso lo richiediamo per il secondo campo: surname.
Per il terzo e ultimo campo email, aggiungiamo anche il controllo relativo alla seguente espressione regolare per verificare l’indirizzo di posta elettronica:
^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$
Alle successive domande bisogna esplicitare l’utilizzo del mapping e dell’implementazione dei servizi.
Ultimi passaggi
JHipster crea una directory di nome “.jhipster” e un file di nome “Author.json” includendo tutti i controlli richiesti. Questo file sarà usato dalla parte web per controllare i dati input per ogni autore che verrà creato.
Rilanciamo l’applicazione con il comando mvnw.cmd e colleghiamoci con il browser all’URL http://127.0.0.1:8080. A questo punto si effettua il login si seleziona in alto a destra “Entities”: scegliendo dal menu a tendina la voce “Author”, compare la pagina web che ci permette, in modalità CRUD, di creare, leggere, aggiornare ed eliminare entità di tipo Author.
In modo agevole è possibile creare (Create a new author) una lista di autori con i loro relativi dati, visualizzarli (VIEW), modificarli (EDIT) o eliminarli (DELETE).
In fase di creazione / editing di un’entità “Author”, vengono utilizzati tutti i controlli sintattici precedentemente richiesti.
Da notare che JHipster ha inoltre già implementato anche una paginazione basica della lista degli elementi.
Che dire? In modo veloce ed elegante abbiamo ottenuto in pochi minuti un’applicazione semplice, ma efficace e robusta, che gestisce una lista di elementi, nel nostro caso appunto gli autori di MokaByte.
Conclusioni
In questo primo articolo abbiamo introdotto le principali caratteristiche e potenzialità del tool JHipster. Inoltre abbiamo visto un primo esempio che ha messo in evidenza i vantaggi e la semplicità della generazione automatica del codice di JHipster.
Nel prossimo articolo daremo uno sguardo dietro le quinte, andando a vedere cosa e come viene generato da JHipster.