Wenn Sie heut­zu­ta­ge eine Web­an­wen­dung ent­wi­ckeln, stehen Ihnen diverse Code-Ge­ne­ra­to­ren und Frame­works zur Verfügung, die Ihnen als Werkzeug und Code-Basis für Ihr Projekt eine Menge Arbeit ersparen. Dabei ist es jedoch häufig gar nicht so einfach, solche Bausteine zu finden und zu­sam­men­zu­brin­gen, die optimal mit­ein­an­der har­mo­nie­ren und ins­be­son­de­re auch zu Ihrer Ap­pli­ka­ti­on passen. Aus diesem Grund hat das Team von JHipster einige der be­lieb­tes­ten Frame­works zur Front- und Backend-Ent­wick­lung in seiner gleich­na­mi­gen Plattform vereint. Der Mix aus Spring Boot, AngularJS, Bootstrap und vielen anderen Kom­po­nen­ten ist komplett Open Source und perfekt für die Kreation moderner Web­an­wen­dun­gen und Mi­cro­ser­vices geeignet.

Was ist JHipster?

Gemeinsam mit einer Handvoll anderer Ent­wick­ler ver­öf­fent­lich­te Julien Dubois im Oktober 2013 das Projekt JHipster (Kurzform für „Java Hipster“). Der Name stand dabei in erster Linie für das Konzept des Web­an­wen­dungs-Ge­ne­ra­tors, denn JHipster sollte Java und alle zu diesem Zeitpunkt an­ge­sag­ten Tools der Web­ent­wick­lung vereinen. Heute zielt die Framework-Kol­lek­ti­on ins­be­son­de­re auf den En­ter­pri­se-Sektor ab, wobei der Fokus darauf liegt, eine hohe Pro­duk­ti­vi­tät während des Ent­wick­lungs­pro­zes­ses sowie eine ex­zel­len­te Qualität der ent­wi­ckel­ten Anwendung zu er­mög­li­chen. Für die stetige Wei­ter­ent­wick­lung ist ein Team aus mehr als 15 Kern­ent­wick­lern und hunderten Mit­wir­ken­den ver­ant­wort­lich. Der JHipster-Code, der unter der Apache-2.0-Lizenz ver­trie­ben wird, steht dabei allen In­ter­es­sier­ten auf GitHub zur freien Verfügung.

Die Kom­po­nen­ten von JHipster im Überblick

JHipster liefert sowohl Lösungen zur Kreation und Ge­stal­tung des Frontends als auch die not­wen­di­gen Tools für die Backend-Ent­wick­lung. So stellt bei­spiels­wei­se das Framework Spring Boot die perfekte Grundlage bereit, um einen robusten Java-Stack auf der Server-Seite zu ge­ne­rie­ren, der sich spielend einfach an diverse Da­ten­ban­ken, Vir­tua­li­sie­rungs-Engines und Mo­ni­to­ring-Tools anbinden lässt und via REST-Schnitt­stel­le mit dem Frontend verknüpft ist. Unter anderem un­ter­stützt JHipster folgende ser­ver­sei­ti­ge Optionen:

  • Da­ten­ban­ken: MariaDB, Post­greS­QL, Oracle, MySQL, MongoDB
  • Vir­tua­li­sie­rung: Docker, Ku­ber­netes, AWS
  • Test­um­ge­bung: Karma, Cucumber
  • In­de­xie­rung: Ela­s­tic­Se­arch
  • Caching: Ehcache, In­fi­nis­pan
  • Mo­ni­to­ring: Pro­me­theus

Was die Frontend-Ent­wick­lung betrifft, setzt JHipster vor allem auf das Ja­va­Script-Framework Angular.js und die Ja­va­Script-Bi­blio­thek React. Beide lassen sich wahlweise mit Twitter Bootstrap, seines Zeichens Vorreiter der Web-Grund­ge­rüs­te, und dem al­ter­na­ti­ven Web-Template HTML5 Boi­ler­p­la­te kom­bi­nie­ren. Optional lässt sich JHipster um die Style­sheet-Sprache Sass erweitern, was die Ge­stal­tung via CSS3 ver­ein­facht.

Für den optimalen Workflow bei der Nutzung dieser un­ter­schied­li­chen Out-of-the-Box-Lösungen sorgen derweil Tools wie der Code-Generator Yeoman, der Ja­va­Script-Mo­dul­bünd­ler Webpack oder die Build-Ma­nage­ment-An­wen­dun­gen Gulp (für Ja­va­Script) und Maven und Gradle (für Java).

Welche Vorteile bietet die Ent­wick­lung mit JHipster?

Wie die obige Auf­lis­tung zeigt, zeichnet sich die JHipster-Kol­lek­ti­on ins­be­son­de­re dadurch aus, dass die einzelnen Kom­po­nen­ten perfekt auf­ein­an­der ab­ge­stimmt sind. Wenn Sie Ihr Web­pro­jekt mit Java pro­gram­mie­ren wollen, sollten Sie den Einsatz der Suite also in jedem Fall in Erwägung ziehen. JHipster senkt nicht nur die Ein­stiegs­hür­den, die mit der Ent­wick­lung verbunden sind, sondern ver­ein­facht und ver­ein­heit­licht den gesamten Pro­gram­mie­rungs­pro­zess – sei es bei der ei­gent­li­chen Ent­wick­lung der Ap­pli­ka­ti­on oder bei an­schlie­ßen­den Über­ar­bei­tun­gen und Er­wei­te­run­gen des Codes. Da JHipster Ihnen außerdem direkt die wich­tigs­ten Werkzeuge zur Ent­wick­lung be­reit­stellt, können Sie durch die Nutzung der Framework-Kol­lek­ti­on reichlich Zeit sparen.

Mit JHipster können Sie zudem innerhalb kürzester Zeit eine Web­ap­pli­ka­ti­on ge­ne­rie­ren, die CRUD-Ope­ra­tio­nen un­ter­stützt und einen klar struk­tu­rier­ten Quellcode aufweist. Auch weitere, nützliche Features wie Be­nut­zer­ma­nage­ment oder In­ter­na­tio­na­li­sie­rung stehen zur Verfügung.

JHipster-Tutorial: In­stal­la­ti­on und erste Schritte mit dem JHipster-Paket

Nach dieser kurzen Ein­füh­rung zum Konzept von JHipster erfahren Sie im folgenden Tutorial, wie Sie die Framework-Kol­lek­ti­on in­stal­lie­ren. Zudem erläutern wir Ihnen die ersten Schritte, die es bei der Nutzung der Code­ge­rüs­te zu be­wäl­ti­gen gilt.

Schritt 1: So in­stal­lie­ren Sie JHipster

Sie haben ver­schie­de­ne Mög­lich­kei­ten, um JHipster auf­zu­set­zen. So können Sie bei­spiels­wei­se auf die „de­ve­lo­p­ment box“ zu­rück­grei­fen. Sie basiert auf der Software Vagrant und bringt JHipster auf einer vir­tu­el­len Ubuntu-Maschine zum Laufen. Für Docker-Fans dürfte hingegen der JHipster-Container auf GitHub in­ter­es­san­ter sein, der ein Image be­reit­stellt, mit dessen Hilfe Sie die Framework-Suite innerhalb von Docker ausführen können. Natürlich ist auch die klas­si­sche, lokale In­stal­la­ti­on auf dem eigenen Server möglich, wobei Sie entweder npm oder Yarn als Pa­ket­ma­na­ger verwenden können. Letzterer ist die vom Ent­wick­ler-Team emp­foh­le­ne Wahl, weshalb er auch in diesem JHipster-Tutorial Grundlage für den In­stal­la­ti­ons­pro­zess ist. Dieser Prozess gestaltet sich wie folgt:

  1. Laden Sie die In­stal­la­ti­ons­pa­ke­te für Java SE 8 von der Oracle-Homepage herunter und in­stal­lie­ren die Lauf­zeit­um­ge­bung im Anschluss.
  2. Laden Sie die In­stal­la­ti­ons­pa­ke­te von Node.js auf der An­bie­ter­sei­te herunter und in­stal­lie­ren Sie diese ebenfalls. Das JHipster-Team empfiehlt in diesem Zu­sam­men­hang eine 64-Bit-Version mit Langzeit-Support (LTS).
  3. In­stal­lie­ren Sie Yarn auf Ihrem Server, indem Sie den sys­tem­spe­zi­fi­schen An­wei­sun­gen im In­stal­la­ti­ons­ver­zeich­nis der Yarn-Homepage folgen.
Hinweis

Haben Sie eine oder mehrere der hier genannten An­wen­dun­gen bereits in­stal­liert, können Sie sich ent­spre­chen­de(n) In­stal­la­ti­ons­schritt(e) an dieser Stelle natürlich sparen.

Über den Pa­ket­ma­na­ger können Sie nun die Generator-Anwendung Yeoman und schließ­lich JHipster selbst beziehen und in­stal­lie­ren. Geben Sie hierfür nach­ein­an­der folgende Befehle ein:

yarn global add yo
yarn global add generator-jhipster
Hinweis

Mit JHipster Online gibt es außerdem eine Al­ter­na­ti­ve, die keinerlei In­stal­la­ti­on zur Nutzung des Framework-Pakets vor­aus­setzt. Der Service generiert eine voll­stän­di­ge JHipster-Ap­pli­ka­ti­on, die Sie entweder auf einem be­stehen­den GitHub-Account hosten oder im ZIP-Format her­un­ter­la­den können.

Schritt 2: Das erste eigene Projekt erstellen

Sind alle Kom­po­nen­ten in­stal­liert, können Sie Ihre ersten Schritte mit dem JHipster-Generator wagen und ein erstes Beispiel-Projekt erzeugen. Zu diesem Zweck benötigen Sie zunächst ein Home-Ver­zeich­nis (hier „jhipster-beispiel“ genannt), in das die ent­spre­chen­den Dateien ge­spei­chert werden. Selbiges lässt sich mit diesem einfachen Kom­man­do­zei­len­be­fehl anlegen:

mkdir jhipster-beispiel

An­schlie­ßend na­vi­gie­ren Sie in das angelegte Ver­zeich­nis und führen dort den JHipster-Start­be­fehl aus:

yo jhipster

Der Generator prä­sen­tiert Ihnen dann eine Reihe von Fragen, anhand derer Sie den Typ Ihrer Ap­pli­ka­ti­on de­fi­nie­ren und ge­wünsch­te Features und Software auswählen können. Auf diese Weise bestimmen Sie zum Beispiel, ob ein Caching-Me­cha­nis­mus im­ple­men­tiert oder welches Tool zur Ge­stal­tung des Backends (Gradle oder Maven) verwendet werden soll. Des Weiteren ak­ti­vie­ren Sie an dieser Stelle – falls benötigt – die Un­ter­stüt­zung zur In­ter­na­tio­na­li­sie­rung Ihres Projekts und wählen die Ba­sis­spra­che und zu­sätz­li­che Sprach­va­ri­an­ten aus. In den meisten Fällen genügt für unser Test­ob­jekt der vor­ein­ge­stell­te Wert.

Haben Sie das Set-up Ihrer Wahl gefunden, können Sie den Ge­ne­rie­rungs­pro­zess starten. Läuft dieser rei­bungs­los ab, erhalten Sie nach kurzer Zeit au­to­ma­tisch Rück­mel­dung, dass Server- und Client-Ap­pli­ka­ti­on er­folg­reich generiert werden konnten.

Schritt 3: Ser­ver­an­wen­dung starten und ins Backend einloggen

JHipster hat nun das Grund­ge­rüst Ihrer Web­an­wen­dung erstellt und den dazu passenden Code in dem an­ge­leg­ten Ver­zeich­nis hin­ter­legt. Aus diesem heraus können Sie jetzt Ihre eigene, auf Spring Boot ba­sie­ren­de Server-Instanz starten. Mit welchem Kommando dies gelingt, hängt davon ab, für welches Tool zur Backend-Ge­stal­tung Sie sich ent­schei­den. Fällt Ihre Wahl auf Maven, dann führen Sie die Server-Kom­po­nen­te mithilfe des in JHipster in­te­grier­ten Maven-Wrappers durch folgenden Befehl aus:

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

Haben Sie sich für Gradle ent­schie­den, lautet das er­for­der­li­che Kommando:

./gradlew (unter macOS/Linux)
gradlew (unter Windows)
Hinweis

Haben Sie Maven bzw. Gradle auf Ihrem System in­stal­liert, genügen die Befehle „mvn“ bzw. „gradle“.

Haben Sie bei der Ge­ne­rie­rung Ihres JHipster-Projekts keinen anderen Port angegeben (stan­dard­mä­ßig ist Port 8080 re­ser­viert), dann können Sie das Backend nun unter der Adresse "http://localhost:8080" in jedem gängigem Browser aufrufen. Dadurch öffnet sich die Start­sei­te, über die Sie sich im Backend einloggen können.

Die Stan­dard­da­ten für den Ad­mi­nis­tra­to­ren- sowie für den einfachen Nut­zer­zu­gang liefert die Seite gleich mit:

  Ad­mi­nis­tra­to­ren­kon­to Nut­zer­kon­to
Name admin user
Passwort admin user

Schritt 4: Ad­mi­nis­tra­ti­on Ihres JHipster-Projekts

Im Zuge der Anmeldung im Ad­mi­nis­tra­to­ren­kon­to wird die Me­nü­leis­te der Server-Instanz um die beiden Punkte „Ad­mi­nis­tra­ti­on“ und „Entitäten“ erweitert. Erst­ge­nann­ten benötigen Sie, um Ihre Web­an­wen­dung zu verwalten. Dabei stehen Ihnen folgende Optionen zur Verfügung:

  • Be­nut­zer­ver­wal­tung: In der Be­nut­zer­ver­wal­tung erstellen, be­ar­bei­ten und löschen Sie die Be­nut­zer­pro­fi­le, die Zugang zu Ihrer JHipster-Ap­pli­ka­ti­on haben. Dabei ist unter anderem auch die Ver­tei­lung von Rollen möglich.
  • Ap­pli­ka­ti­ons-Metriken: In der Metriken-Rubrik finden Sie Angaben über die Spei­cher­aus­las­tung sowie In­for­ma­tio­nen über ein­ge­hen­de HTTP-Anfragen sowie Service- und Caching-Sta­tis­ti­ken.
  • Ap­pli­ka­ti­ons-Status: Unter „Ge­sund­heit“ erhalten Sie eine kleine Übersicht über die Funk­tio­na­li­tät Ihrer Ap­pli­ka­ti­ons-Kom­po­nen­ten wie Fest­plat­ten­spei­cher oder Da­ten­ban­ken.
  • Kon­fi­gu­ra­ti­on: Über die Schalt­flä­che „Kon­fi­gu­ra­ti­on“ öffnen Sie das Menü für die ge­ne­rel­len Ein­stel­lun­gen Ihres JHipster-Projekts.
  • Audits: Die Audits gewähren Ihnen einen Überblick über er­folg­rei­che (AU­THEN­TI­CA­TI­ON_SUCCESS) und ge­schei­ter­te (AU­THEN­TI­CA­TI­ON_FAILURE) Log-in-Versuche inklusive Angaben zu Zeitpunkt und Benutzer.
  • Pro­to­kol­le/Logs: Hier erhalten Sie Einsicht in aktive Log-Me­cha­nis­men. Zudem haben Sie die Mög­lich­keit, eine Stufe für das Logging zu de­fi­nie­ren (Warnung, In­for­mie­rung, Ver­fol­gung, Feh­ler­mel­dung etc.).
  • API-Übersicht: In der API-Übersicht sehen Sie alle REST-Schnitt­stel­len Ihrer Ap­pli­ka­ti­on inklusive der Codes zum Ansteuern dieser APIs (optional für jedes API aus­klapp­bar).
  • Datenbank: Schließ­lich bietet das JHipster-Backend auch ein Interface für Ihre Da­ten­ban­ken, über das Sie die Ver­bin­dung testen und aufbauen können.

Über den Reiter „Sprache“ können Sie zudem die Sprach­ver­si­on der Ober­flä­che Ihrer Spring-Boot-Server-Instanz ändern.

Schritt 5: Neue Entitäten erstellen

Im vor­an­ge­gan­ge­nen Schritt ist der zweite wichtige Menüpunkt des JHipster-Backends, der die Be­zeich­nung „Entitäten“ trägt, bereits zur Sprache gekommen. Über diese Einheiten, die Sie jederzeit einsehen, be­ar­bei­ten oder löschen können (dank des bereits erwähnten CRUD-Konzepts), liefern Sie Input für Ihre Da­ten­ban­ken – und damit auch in­halt­li­chen Input für Ihr Projekt. Um solche Entitäten in JHipster zu kreieren, haben Sie ver­schie­de­ne Mög­lich­kei­ten zur Verfügung: Stan­dard­lö­sung ist der Entity-Sub-Generator, der sich über die Kom­man­do­zei­le bedienen lässt. Die Syntax dieses Ge­ne­ra­tors sieht fol­gen­der­ma­ßen aus:

jhipster entity <entityName> -- [options]

Um die Mög­lich­kei­ten des Tools ken­nen­zu­ler­nen, empfiehlt sich die die Eingabe von „jhipster entity --help“. Der Befehl listet Ihnen die ver­füg­ba­ren Optionen auf (wie auch der folgende Screen­shot zeigt):

Al­ter­na­tiv können Sie die Entitäten auch mithilfe eines gra­fi­schen Tools erzeugen. Hierfür haben Sie zwei Mög­lich­kei­ten: Der UML-Editor JHipster UML, den Sie auf GitHub finden, sowie die Online-Anwendung JDL-Studio, die auf der do­main­spe­zi­fi­schen Sprache JDL (JHipster Domain Language) basiert.

Zum Hauptmenü