JHipster
Introduction
JHipster is a development platform to generate, develop and deploy Spring Boot + Angular / React / Vue Web applications and Spring microservices.
References
Home
Installing JHipster
https://www.jhipster.tech/installation/
Creating an application
https://www.jhipster.tech/creating-an-app/
Features
JDL diagram to Liquibase, JPA entity classes, etc.
Generate your entities with jhipster import-jdl jhipster-jdl.jh
JDL-Studio
URL > https://start.jhipster.tech/jdl-studio/
It's a tool for drawing JHipster JDL diagrams based on the JDL syntax.
UML diagram to Liquibase, JPA entity classes, etc.
URL > https://www.jhipster.tech/jhipster-uml/
JHipster-UML is a JHipster sub-project that can be used as a replacement to using the entity sub-generator.
Installation
“Local installation with NPM” installation type
At time of writing, it requires Node >= 14.15.0 (see article: Node.js development).
Follow the installing JHipster page instructions.
Creating an application
Follow the indications in the JHipster page: Creating an application.
Types of applications:
Monolithic application (recommended for simple projects): this a classical, one-size-fits-all application. It’s easier to use and develop.
Gateway application: in a microservices architecture, this is an edge server that routes and secures requests.
Microservice application: in a microservices architecture, this is an edge server that routes and secures requests.
What is the base name of your application?
Do you want to make it reactive with Spring WebFlux? (y/N)
What is your default Java package name? (com.mycompany.myapp)
Types of authentication:
JWT authentication (stateless, with a token)
OAuth 2.0 /OIDC Authentication (stateful, works with keycloak and Okta)
HTTP Session Authentication (stateful, default Spring Security mechanism)
Types of databases:
SQL (H2, PostgreSQL, MySQL, MariaDB, Oracle, MSSQL)
MongoDB
Cassandra
[BETA] Couchbase
[BETA] Neo4j
No database
Which *production* database would you like to use?
PostgreSQL
MySQL
MariaDB
Oracle
Microsoft SQL Server
Which *development* database would you like to use?
H2 with disk-based persistence
H2 with in-memory persistence
Oracle
Which cache do you want to use? (Spring cache abstraction):
Ehcache (local cache, for a single node)
Caffeine (local cache, for a single node)
Hazelcast (distributed cache, for multiple nodes, supports rate-limiting for gateway applications)
Infinispan (hybrid cache, for multiple nodes)
Memcached (distributed cache) - Warning, when using an SQL database, this will disable the Hibernate 2nd level cache!
Redis (distributed cache)
No cache - Warning, when using an SQL database, this will disable the Hibernate 2nd level cache!
Do you want to use Hibernate 2nd level cache? (Y/n)
Would you like to use Maven or Gradle for building the backend?
Maven
Gradle
Do you want to use the JHipster Registry to configure, monitor and scale your application?
Which other technologies would you like to use? [zero o more]
Elasticsearch as search engine
WebSockets using Spring Websocket
Apache Kafka as asynchronous messages broker
API first development using OpenAPI-generator
Which Framework would you like to use for the client?
Angular
React
Vue
No client
Do you want to generate the admin UI?
Would you like to use a Bootswatch theme (https://bootswatch.com/)?
Default JHipster
Cerulean
Cosmo
Cyborg
Darkly
Flatly
Journal
Would you like to enable internationalization support? (Y/n)
Please choose the native language of the application:
<all languages>
Please choose additional languages to install:
<other languages>
Besides JUnit and Jest, which testing frameworks would you like to use?
Cypress
[DEPRECATED] Protractor
Gatling
Cucumber
Would you like to install other generators from the JHipster Marketplace?
After the generation, the following message will appear:
Run your Spring Boot application:
./mvnw
Start your Webpack development server with:
npm start
REMARK: It has npm wrapper available, you can use instead ./npmw start