Building a modern web (or mobile) application requires a lot of tools, frameworks and techniques. This session shows how JHipster unites popular frameworks like AngularJS, Spring Boot and Bootstrap. Using Yeoman, a scaffolding tool for modern webapps, JHipster will generate a project that uses Java 8, SQL or NoSQL databases, Spring profiles, Maven or Gradle, Gulp.js, WebSockets and BrowserSync. It also supports a number of different authentication mechanisms: classic session-based auth, OAuth 2.0, or token-based authentication. For cloud deployments, JHipster includes out-of-the-box support for Cloud Foundry and Heroku.
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
1. Photos by
Get Hip with JHipster!
Matt Raible • http://raibledesigns.com
2. Blogger on raibledesigns.com
Founder of AppFuse
Father, Skier, Mountain
Biker, Whitewater Rafter
Web Framework Connoisseur
Who is Matt Raible?
Bus Lover
3. What about YOU?
Are you a Java Developer?
How long have you been doing web development?
Do you like JSF? Do you like GWT?
Do you like JavaScript?
5. Java 8
Parallel Collections
JSR 310 Date and Time API
Functional Interfaces with default method
Lambda Expressions (a.k.a. Closures)
Nashorn JavaScript Engine
// sort a list by lastName
List<Person> persons = ...;
persons.sort((p1, p2) ->
p1.getLastName().compareTo(p2.getLastName()));
6. Hipster
n. noun
1. One who is exceptionally aware of or interested in the latest trends
and tastes.
7. Latest trends in JavaLand?
Annotations
Environments: dev, test, production
Microservices
Container-less Deployment
Monitoring
8. Spring Boot
Create stand-alone Spring applications
Embeds Tomcat, Jetty or Undertow directly
Provides opinionated 'starter' POMs to simplify your Maven
configuration
Also supports/promotes using Gradle
9. Spring Boot
Automatically configures Spring whenever possible
Provides production-ready features such as metrics, health checks and
externalized configuration
Absolutely no code generation and no requirement for XML
configuration
Grails 3.0 is based on Spring Boot
23. JHipster Features
Authentication and Security
Spring Boot Metrics Dashboard
Bootstrap and AngularJS Integrated
REST API with Spring MVC
JPA Support and NoSQL Support
CRUD Generation
Internationalization
24. Yeoman
The web's scaffolding tool for modern webapps
Helps you kickstart new projects
Promotes the Yeoman workflow
http://jhipster.github.io/ yeoman.io
27. Generate a basic blog application
Look at its configuration
Generate the CRUD entities
Limit blogs to current user, allow HTML
Deploy to
Demo Goals
… all in 20 minutes!
37. JHipster 3.0
Microservices based on Spring Cloud and Netflix Stack
JJWT instead of XAuth
Docker image to hub.docker.com
Pluralization of generated entities
Remove the "fast" profile
Restructuring based on John Papa’s Style Guide
Released March 23, 2016
38. JHipster 3.0 Microservices
1. Generate Gateway for web traffic
and Angular UI
2. Install JHipster Registry
3. Generate microservice apps
4. Install JHipster Console for
monitoring
jhipster.github.io/microservices-architecture
44. Getting Started with Angular 2
raibledesigns.com/rd/entry/getting_started_with_angular_2
45. The JHipster Mini-Book
Written with Asciidoctor
Quick and to the point, 130 pages
Developed a Real World App:
www.21-points.com
Free Download from
www.infoq.com/minibooks/jhipster-mini-book
46. Lines of Code in 21-Points
0
3500
7000
10500
14000
Project Created Entities Generated Business Logic and UI
13,888
12,736
8,556
47. Project Creation
Entities Generated
Biz Logic and UI
0 3500 7000 10500 14000
2,323
2,214
1,465
4,044
3,776
2,595
6,087
5,505
3,752
Java JavaScript HTML
Lines of Code by Language
50. The JHipster Mini-Book
1.0 Release on October 30
jhipster-book.com
21-points.com
@jhipster_book
Write your own InfoQ mini-book! github.com/mraible/infoq-mini-book
51. Stay hip by following me!
raibledesigns.com
@mraible
Presentations
slideshare.net/mraible
Code
github.com/mraible
Questions?