Se vi occupate dello sviluppo di un'ap­pli­ca­zio­ne web, avete a vostra di­spo­si­zio­ne diversi ge­ne­ra­to­ri di codice e framework che fungono da strumento e base di codice per il vostro progetto e che al­leg­ge­ri­sco­no no­te­vol­men­te il vostro lavoro. Spesso però non è così facile trovare e combinare com­po­nen­ti che si ar­mo­niz­zi­no per­fet­ta­men­te tra loro e che nello specifico siano in grado di adattarsi alla vostra ap­pli­ca­zio­ne. Per questo motivo il team di JHipster ha combinato alcuni dei framework più popolari per lo sviluppo front end e back end nella piat­ta­for­ma omonima. Il mix di Spring Boot, AngularJS, Bootstrap e molti altri com­po­nen­ti è com­ple­ta­men­te open source e per­fet­ta­men­te adatto alla creazione di moderne ap­pli­ca­zio­ni web e micro servizi.

Che cos’è JHipster?

Nell’ottobre 2013 Julien Dubois ha pub­bli­ca­to insieme ad altri svi­lup­pa­to­ri il progetto JHipster (forma ab­bre­via­ta per Java Hipster). Il nome indica prin­ci­pal­men­te il concetto di ge­ne­ra­to­re di ap­pli­ca­zio­ni web, perché JHipster avrebbe dovuto unire Java e tutti gli strumenti di sviluppo web che erano popolari in quel periodo. Oggi i framework sono rivolti in par­ti­co­la­re al settore delle imprese con l'o­biet­ti­vo di con­sen­ti­re un'elevata pro­dut­ti­vi­tà durante il processo di sviluppo e un'ec­cel­len­te qualità del­l'ap­pli­ca­zio­ne svi­lup­pa­ta. Un team di oltre 15 svi­lup­pa­to­ri prin­ci­pa­li e centinaia di col­la­bo­ra­to­ri è re­spon­sa­bi­le di uno sviluppo continuo. Il codice JHipster, di­stri­bui­to sotto licenza Apache 2.0, è a di­spo­si­zio­ne gra­tui­ta­men­te su GitHub.

Pa­no­ra­mi­ca delle com­po­nen­ti di JHipster

JHipster fornisce soluzioni per la creazione e la pro­get­ta­zio­ne del front end e gli strumenti necessari per lo sviluppo del back end. Ad esempio il framework Spring Boot è la base perfetta per generare un robusto stack Java lato server che può essere fa­cil­men­te collegato a vari database, motori di vir­tua­liz­za­zio­ne e strumenti di mo­ni­to­rag­gio ed è collegato front end tramite in­ter­fac­cia REST.

JHipster supporta le seguenti opzioni lato server:

  • Database: MariaDB, Post­gre­SQL, Oracle, MySQL, MongoDB
  • Vir­tua­liz­za­zio­ni: Docker, Ku­ber­ne­tes, AWS
  • Ambienti di prova: Karma, Cucumber
  • In­di­ciz­za­zio­ne: Ela­stic­Search
  • Caching: Ehcache, In­fi­ni­span
  • Mo­ni­to­rag­gio: Pro­me­theus

Per quanto riguarda lo sviluppo front end, JHipster si affida so­prat­tut­to al framework Ja­va­Script Angular.js e alla libreria Ja­va­Script React. Entrambi possono essere combinati a scelta con Twitter Bootstrap, il pioniere dei framework web e il template web al­ter­na­ti­vo HTML5 Boi­ler­pla­te. Op­zio­nal­men­te JHipster può essere esteso al lin­guag­gio di fogli di stile Sass, che sem­pli­fi­ca la pro­get­ta­zio­ne tramite CSS3.

Strumenti come il ge­ne­ra­to­re di codice Yeoman, il module bundler Ja­va­Script Webpack, le ap­pli­ca­zio­ni di gestione di build Gulp (per Ja­va­Script), Maven e Gradle (per Java) as­si­cu­ra­no un flusso di lavoro ottimale quando si uti­liz­za­no queste diverse soluzioni out of the box.

Quali vantaggi offre lo sviluppo con JHipster?

Come mostra l'elenco sopra citato, la col­le­zio­ne JHipster è ca­rat­te­riz­za­ta dal fatto che i singoli com­po­nen­ti sono com­bi­na­bi­li per­fet­ta­men­te tra loro. Se volete pro­gram­ma­re il vostro progetto web con Java, dovreste in ogni caso con­si­de­ra­re l'u­ti­liz­zo della suite. JHipster non solo riduce le dif­fi­col­tà legate alla fase iniziale dello sviluppo, ma sem­pli­fi­ca e unifica l'intero processo di pro­gram­ma­zio­ne, che si tratti dello sviluppo effettivo come di ag­gior­na­men­ti ed esten­sio­ni del codice. E poiché JHipster fornisce di­ret­ta­men­te gli strumenti di sviluppo più im­por­tan­ti vi farà ri­spar­mia­re molto tempo.

Inoltre, è anche possibile generare ra­pi­da­men­te un'ap­pli­ca­zio­ne web che supporta le ope­ra­zio­ni­CRUD e che mostra una chiara struttura del codice sorgente. Sono di­spo­ni­bi­li anche altre utili funzioni come la gestione degli utenti e l’in­ter­na­zio­na­liz­za­zio­ne.

Tutorial per JHipster: in­stal­la­zio­ne e primi passi con il pacchetto JHipster

Dopo questa breve in­tro­du­zio­ne al concetto di JHipster, il seguente tutorial vi mostrerà come in­stal­la­re la col­le­zio­ne di framework e i primi passi da compiere nell’im­ba­sti­tu­ra del codice.

Passo 1: in­stal­la­zio­ne di JHipster

Avete diverse pos­si­bi­li­tà per in­stal­la­re JHipster. Ad esempio potete accedere al “de­ve­lo­p­ment box” che si basa sul software Vagrant e fa fun­zio­na­re JHipster su una macchina virtuale Ubuntu. Per i fan di Docker potrebbe essere in­te­res­san­te il container JHipster su GitHub, che consente di eseguire la suite di framework al­l'in­ter­no di Docker.

Na­tu­ral­men­te in al­ter­na­ti­va si può anche fare una classica in­stal­la­zio­ne locale sul proprio server usando npm o Yarn come gestore di pacchetti. Que­st'ul­ti­ma è la scelta rac­co­man­da­ta dal team di sviluppo, motivo per cui è la base per il processo di in­stal­la­zio­ne in questo tutorial. Ecco come eseguire tale processo:

  1. Scaricate il pacchetto d’in­stal­la­zio­ne per Java SE 8 dalla homepage di Oracle e in­stal­la­te l’ambiente di runtime.
  2. Scaricate il pacchetto d’in­stal­la­zio­ne di Node.js dalla pagina e in­stal­la­te­lo. Il team di JHipster rac­co­man­da una versione a 64 bit con supporto a lungo termine (LTS).
  3. In­stal­la­te Yarn sul vostro server seguendo le istru­zio­ni spe­ci­fi­che del sistema nella directory d’in­stal­la­zio­ne della homepage di Yarn.
N.B.

Se avete già in­stal­la­to una o più delle ap­pli­ca­zio­ni qui elencate, potete saltare queste fasi di in­stal­la­zio­ne.

Ora è possibile uti­liz­za­re il gestore di pacchetti per ottenere e in­stal­la­re l'ap­pli­ca­zio­ne di ge­ne­ra­to­re Yeoman e infine JHipster stesso. Inserite i seguenti comandi con­se­cu­ti­va­men­te:

yarn global add yo
yarn global add generator-jhipster
N.B.

Con JHipster Online vi viene offerta un'al­ter­na­ti­va che non richiede alcuna in­stal­la­zio­ne per uti­liz­za­re il pacchetto di framework. Il servizio genera un'ap­pli­ca­zio­ne JHipster completa che potete ospitare su un account GitHub esistente o scaricare in formato ZIP.

Passo 2: creazione del vostro primo progetto

Dopo aver in­stal­la­to tutte le com­po­nen­ti, potete creare il vostro primo progetto e compiere i primi passi con il ge­ne­ra­to­re JHipster rea­liz­zan­do un progetto di esempio. Prima di tutto è ne­ces­sa­ria una home directory (qui chiamata "jhipster-example") dove saranno me­mo­riz­za­ti i file cor­ri­spon­den­ti. Ciò si può fare anche inserendo la seguente riga di comando:

mkdir jhipster-esempio

Quindi navigate fino alla directory creata ed eseguite il comando di avvio di JHipster:

yo jhipster

Il ge­ne­ra­to­re vi pre­sen­te­rà quindi una serie di domande che potrete uti­liz­za­re per definire il tipo di ap­pli­ca­zio­ne e se­le­zio­na­re le ca­rat­te­ri­sti­che e il software de­si­de­ra­to. In questo modo si determina, ad esempio, se un mec­ca­ni­smo di caching deve essere im­ple­men­ta­to o quale strumento deve essere uti­liz­za­to per pro­get­ta­re il back end (Gradle o Maven). Se ne­ces­sa­rio, è possibile attivare il supporto per l'in­ter­na­zio­na­liz­za­zio­ne del progetto e se­le­zio­na­re la lingua di base e le varianti lin­gui­sti­che ag­giun­ti­ve. Nella maggior parte dei casi per il nostro oggetto di test è suf­fi­cien­te il valore di default.

Una volta trovata la con­fi­gu­ra­zio­ne di vostra scelta, potete iniziare il processo di ge­ne­ra­zio­ne. Se questa funziona senza problemi, ri­ce­ve­re­te un feedback au­to­ma­ti­co dopo un breve periodo di tempo in cui verrà affermato che il server e l'ap­pli­ca­zio­ne client sono stati generati con successo.

Passo 3: Avvio del­l'ap­pli­ca­zio­ne server e accesso al back end

JHipster ha ora creato la struttura di base della vostra ap­pli­ca­zio­ne web e me­mo­riz­za­to il codice ap­pro­pria­to nella directory creata. Da questa directory è ora possibile avviare la propria istanza del server basata su Spring Boot. Il comando da uti­liz­za­re dipende dallo strumento di pro­get­ta­zio­ne di back end scelto. Se si sceglie Maven, eseguite il com­po­nen­te server uti­liz­zan­do il wrapper Maven integrato in JHipster uti­liz­zan­do il seguente comando:

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

Se avete scelto Gradle il comando richiesto è:

./gradlew (unter macOS/Linux)
gradlew (unter Windows)
N.B.

Se avete in­stal­la­to Maven o Gradle sul vostro sistema, basterà inserire i comandi "mvn" o "gradle".

Se non avete spe­ci­fi­ca­to una porta diversa quando avete generato il vostro progetto JHipster (la porta 8080 è riservata di default), potete ri­chia­ma­re il back end al­l'in­di­riz­zo "http://localhost:8080" in qualsiasi browser comune. In questo modo si aprirà la pagina iniziale dove è possibile accedere al back end.

Il sito fornisce anche i dati standard per l'accesso come am­mi­ni­stra­to­re o come utente:

Account am­mi­ni­stra­to­re Account utente
Nome admin user
Password admin user

Passo 4: Am­mi­ni­stra­zio­ne del vostro progetto JHipster

Quando si accede al­l'ac­count con il ruolo di am­mi­ni­stra­to­re la barra dei menu del­l'i­stan­za del server viene estesa alle due voci "am­mi­ni­stra­zio­ne" e "entità". La prima è in­di­spen­sa­bi­le per gestire la vostra ap­pli­ca­zio­ne web. Sono di­spo­ni­bi­li le seguenti opzioni:

  • Am­mi­ni­stra­zio­ne utenti: nel­l'am­mi­ni­stra­zio­ne utenti create, mo­di­fi­ca­te e can­cel­la­te i profili utente che hanno accesso alla vostra ap­pli­ca­zio­ne JHipster. Tra le altre cose, è anche possibile la divisione in ruoli.
  • Sta­ti­sti­che del­l'ap­pli­ca­zio­ne: in questa sezione si trovano in­for­ma­zio­ni su utilizzo della memoria, richieste HTTP in arrivo e sta­ti­sti­che di servizio e di caching.
  • Stato dell’ap­pli­ca­zio­ne: la voce “stato” offre una piccola pa­no­ra­mi­ca delle fun­zio­na­li­tà dei com­po­nen­ti della vostra ap­pli­ca­zio­ne, come lo spazio su disco e database.
  • Con­fi­gu­ra­zio­ne: il pulsante "con­fi­gu­ra­zio­ne" apre il menu per le im­po­sta­zio­ni generali del progetto JHipster.
  • Audit: gli audit for­ni­sco­no una pa­no­ra­mi­ca dei tentativi di accesso riusciti (AU­THEN­TI­CA­TION_SUCCESS) e falliti (AU­THEN­TI­CA­TION_FAILURE), incluse in­for­ma­zio­ni su tempi e utenti.
  • Pro­to­col­li/Log: qui è possibile vi­sua­liz­za­re i mec­ca­ni­smi di log attivi. È inoltre possibile definire un livello di re­gi­stra­zio­ne (avvisi, in­for­ma­zio­ni, mo­ni­to­rag­gio, messaggi di errore e così via).
  • Pa­no­ra­mi­ca API: nella pa­no­ra­mi­ca API potete vedere tutte le in­ter­fac­ce REST della vostra ap­pli­ca­zio­ne, compresi i relativi codici per il controllo (espan­di­bi­li op­zio­nal­men­te per ogni API).
  • Database: infine, il back end JHipster fornisce un'in­ter­fac­cia per i vostri database per testare e stabilire la con­nes­sio­ne.

La voce "lingua" permette anche di cambiare la versione lin­gui­sti­ca del­l'in­ter­fac­cia utente del­l'i­stan­za del boot server Spring.

XRREt1KB4Y8.jpg Per visualizzare questo video, sono necessari i cookie di terze parti. Puoi accedere e modificare le impostazioni dei cookie qui.

Passo 5: Creazione di nuove entità

Nel passo pre­ce­den­te abbiamo men­zio­na­to la seconda im­por­tan­te voce del menu del back end JHipster, chiamata "entità". Queste unità, che potete vi­sua­liz­za­re, mo­di­fi­ca­re o can­cel­la­re in qualsiasi momento (grazie al concetto CRUD già citato), for­ni­sco­no l'input per i vostri database e quindi anche l'input di contenuto per il vostro progetto. Ci sono diversi modi per creare tali entità in JHipster: la soluzione standard è il ge­ne­ra­to­re interno di entità, che può essere gestito dalla linea di comando. La sintassi di questo ge­ne­ra­to­re è la seguente:

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

Per conoscere le pos­si­bi­li­tà dello strumento si rac­co­man­da di inserire "jhipster entity --help". Il comando elenca le opzioni di­spo­ni­bi­li (come mostrato nel­l'im­ma­gi­ne seguente):

In al­ter­na­ti­va potete creare le entità uti­liz­zan­do uno strumento grafico. In questo caso avete due pos­si­bi­li­tà: l’editor UML JHipster UML, che trovate su GitHub, oppure l’ap­pli­ca­zio­ne online JDL-Studio, basata sul lin­guag­gio specifico del dominio JDL (JHipster Domain Language).

Vai al menu prin­ci­pa­le