By P. Mohan
www.pmverma.com
Agenda
Introduction
Section I : Installation and application generation
Section II : Working with generated application
Section III : Testing the generated application
Section IV : Going to production
Section V : Tooling & sub-projects
Section VI : Getting Help
Section VII : Q&A
Introduction
+250 contributors
+320,000 installations
● AngularJS application
● Configuration files
The generated screens: security
● Administration screens
○ Monitoring
○ Health
○ Spring Boot configuration
○ Spring Security audits
○ Log management
● Very useful in production
● Will probably be a separate module in JHipster 4
Maven / Gradle usage
● Maven/Gradle wrappers
● HikariCP
Liquibase
● 3 options
○ No cache
○ Ehcache
■ Default for monoliths
■ Upgrade soon to Ehcache 3
○ Hazelcast
■ Default for microservices, with a specific configuration for clustering
● Automatically monitored
○ Production defaults are low, should be tuned depending on your business/hardware
MongoDB
○ Very popular
● Optional add-on
● Session-based authentication
○ Stateful
○ Classical “form-based” authentication with Spring Security
○ Improved remember-me over the standard Spring Security implementation
● OAuth2
○ Stateless
○ Needs a specific back-end, only works with SQL and MongoDB
● JWT
○ Stateless
○ Very good for microservices
Internationalization
● Great for AngularJS developers (no need to read the Spring MVC REST
code!)
WebSockets
● Optional add-on
○ Easy to integrate
○ Tracks who is logged in, their current screen, all in real time
Creating an entity
● Validation is available
○ AngularJS validation on the client side
○ Database constraints
Managing relationships
● Very useful in business applications, where basic CRUD entities are not
enough
○ Like DTOs
○ Usually both options are selected at the same time, but it depends on what you want to do
● Service beans are Spring beans: security, transactions, monitoring are
available
● Option to use just an implementation, or an interface + an implementation
Pagination options
○ In fact just the answers serialized in JSON - easy to understand and modify if needed
Upgrading an application
● Docker Compose for all 3rd-party tools, so they are easy to manage
Spring Boot devtools
● Unit tests are generated for the main application and for the entities
● Available as an option
● Generate load testing simulations for CRUD entities
○ Uses the 4 CRUD methods
○ Must be tuned depending on your real business needs
○ Generates a great dashboard
○ Don’t forget to use pagination!
● Gatling tests can be run directly from Maven
● Simulations are developed with a Scala DSL
○ Not very complex to use
○ Scala compilation is slow at startup!
Cucumber
● Available as an option
$ yo jhipster:cloudfoundry
Deploying to Heroku
● AWS
● BoxFuse
● Application servers
● Executable WAR
Section V Tooling & sub-projects
JDL
https://jhipster.github.io/
https://jhipster.github.io/video-tutorial/
http://www.slideshare.net/julien.dubois/devoxx-being-productive-with-jhipster
http://www.slideshare.net/KileNiklawski/how-we-built-a-job-board-in-one-week-
with-jhipster
Questions?
Answer!