Matt Raible | @mraible
Get Hip with JHipster!
May 10, 2021 Photo by Dixie Lawrence https://
fl
ickr.com/photos/dixielaw/3691270413
Slide 2
Slide 2 text
What is JHipster?
Slide 3
Slide 3 text
How to Use JHipster
Install JHipster and Yeoman, using npm:
npm install -g generator-jhipster
Create a directory and cd into it:
take app
Run it!
jhipster
Slide 4
Slide 4 text
start.jhipster.tech
Slide 5
Slide 5 text
Thriving OSS Project
Started by Julien Dubois on October 21, 2013
App Generator, Platform, Learning Tool …
Slide 6
Slide 6 text
@mraible
Hi, I’m Matt Raible
Father, Husband, Skier, Mountain
Biker, Whitewater Rafter
Bus Lover
Web Developer and Java Champion
Okta Developer Advocate
Blogger on raibledesigns.com and
developer.okta.com/blog
@mraible
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
developer.okta.com
Slide 12
Slide 12 text
Authentication Standards
Slide 13
Slide 13 text
What about YOU?
Are you a Java Developer? Web Developer?
How long have you been doing web development?
Do you like Spring? Java/Jakarta EE?
Do you like JavaScript? TypeScript?
Slide 14
Slide 14 text
Do you want to be a hip Java Developer?
Slide 15
Slide 15 text
Java 8
Parallel Collections
JSR 310 Date and Time API
Functional Interfaces with default method
Lambda Expressions (a.k.a. Closures)
Nashorn JavaScript Engine
Slide 16
Slide 16 text
Java 11
New String Methods
File Utility Methods
Local Variable Syntax: var
Java EE and CORBA modules removed
What about Java 12?
Slide 17
Slide 17 text
Java 17
Deprecates Applets
Release Date: 14 September 2021
Learn More at this week’s Denver JUG!
https://youtu.be/6NHBI2MojA8
Slide 18
Slide 18 text
Hipster
n. noun
1. One who is exceptionally aware of or interested in the latest trends
and tastes.
Slide 19
Slide 19 text
Latest trends in JavaLand?
Microservices
Embedded App Servers
Deployment with Containers
Environments: dev, test, production
Auto-Con
fi
guration
Reactive
Slide 20
Slide 20 text
Spring Boot
Automatically con
fi
gures Spring whenever possible
Provides production-ready features such as metrics, health checks and
externalized con
fi
guration
Absolutely no code generation and no requirement for XML
con
fi
guration
Embeds Tomcat, Jetty, or Undertow directly
Slide 21
Slide 21 text
SPRING INITIALIZR @ start.spring.io
Slide 22
Slide 22 text
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@Entity
class Blog {
@Id
@GeneratedValue
private Long id;
private String name;
// getters, setters, toString(), etc
}
@RepositoryRestResource
interface BlogRepository extends JpaRepository {
}
Slide 23
Slide 23 text
@SpringBootApplication
class NotesApplication
fun main(args: Array) {
SpringApplication.run(NotesApplication::class.java, *args)
}
@Entity
data class Note(@Id @GeneratedValue var id: Long? = null,
var text: String? = null,
@JsonIgnore var user: String? = null)
@RepositoryRestResource
interface NotesRepository : JpaRepository
Slide 24
Slide 24 text
Microservices with Spring Boot
https://developer.okta.com/blog/2019/05/22/java-microservices-spring-boot-spring-cloud
Slide 25
Slide 25 text
Latest trends in Web Development?
Progressive Web Applications
JavaScript MVC Frameworks
Front-End Optimization
REST and GraphQL APIs
CSS Grid
Micro Frontends
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
Hot Frameworks hotframeworks.com
Slide 29
Slide 29 text
Jobs on Indeed (US)
May 2021
0
4,500
9,000
13,500
18,000
React Angular Vue Vanilla
Slide 30
Slide 30 text
Stack Over
fl
ow Tags
May 2021
0
100,000
200,000
300,000
400,000
React Angular Vue
@spring_io
#springio17
JHipster jhipster.tech
JHipster is a development platform to generate, develop and deploy
Spring Boot + Angular/React Web applications and Spring microservices.
and Vue! ✨
Slide 34
Slide 34 text
JHipster is Inclusive
https://github.com/jhipster/jhipster-artwork
Slide 35
Slide 35 text
JHipster is Open Source
Web Statistics, April 2021
304K Page Views / 495K on GitHub
173K Downloads
GitHub Statistics
18.4K Stars
617 Contributors
Slide 36
Slide 36 text
JHipster Foundations
Spring Boot
Spring Security
Angular, React, or Vue
Bootstrap
Micrometer
Maven or Gradle
Authentication Type: cookie-
based, JWT, or OAuth 2.0 / OIDC
Type of Database: SQL or NoSQL
Caching: EhCache or Hazelcast
Elasticsearch
Frameworks Project Options
Slide 37
Slide 37 text
How to use JHipster
To install JHipster and Yeoman, use npm:
npm install -g generator-jhipster
Then create a directory and cd into it:
mkdir myapp && cd myapp
Then run JHipster:
jhipster
Slide 38
Slide 38 text
Demo Time!
Generate a basic blog application
Look at its
fi
les and con
fi
guration
Generate the CRUD entities
Limit blogs to current user, allow HTML
Deploy to … all in 20 minutes!
Slide 39
Slide 39 text
Demo Entity Diagram
Slide 40
Slide 40 text
Get Started with JHipster 7 Demo
https://github.com/mraible/jhipster7-demo | https://youtu.be/6lf64CctDAQ
Slide 41
Slide 41 text
JHipster 6 with OIDC Authentication
https://developer.okta.com/blog/2019/04/04/java-11-java-12-jhipster-oidc
Slide 42
Slide 42 text
OAuth 2.0 and OpenID Connect
OpenID Connect
OAuth 2.0
HTTP
OpenID Connect is for
authentication
OAuth 2.0 is for
authorization
Slide 43
Slide 43 text
Reactive Microservices with JHipster 7
https://developer.okta.com/blog/2021/01/20/reactive-java-microservices
Slide 44
Slide 44 text
JHipster is Knowledge
Slide 45
Slide 45 text
The JHipster Mini-Book
Written with Asciidoctor
Quick and to the point, 164 pages
Developed a Real World App:
www.21-points.com
Free Download from
infoq.com/minibooks/jhipster-mini-book
Slide 46
Slide 46 text
Lines of Code in 21-Points
0
6500
13000
19500
26000
Project Created Entities Generated Business Logic and UI
25,670
23,590
16,728
Slide 47
Slide 47 text
Project Creation
Entities Generated
Biz Logic and UI
0 10000 20000 30000
2,999
2,648
1,839
9,472
8,911
5,523
8,383
7,696
5,892
Java TypeScript HTML
Lines of Code by Language
Slide 48
Slide 48 text
Learn More
stackoverflow.com
Spring Boot
spring.io/guides
JHipster
www.jhipster.tech
Okta APIs
developer.okta.com
Slide 49
Slide 49 text
Getting Help
stackover
fl
ow.com/tags/jhipster
gitter.im/jhipster/generator-jhipster
github.com/jhipster/.../CONTRIBUTING.md
groups.google.com/.../jhipster-dev
Slide 50
Slide 50 text
What’s Next for JHipster?
Micro Frontends
Spring Boot 2.5
GraphQL
* These are my personal interests.
Slide 51
Slide 51 text
developer.okta.com/blog
@oktadev
Slide 52
Slide 52 text
Action!
Try Spring Boot
Try Angular, React, or Vue
Try JHipster
Explore PWAs
Enjoy the bootiful experience!
Slide 53
Slide 53 text
Questions?
Keep in touch!
raibledesigns.com
@mraible
Presentations
speakerdeck.com/mraible
Code
github.com/oktadev