SlideShare a Scribd company logo
Bootiful Development with
Spring Boot and React
By Matt Raible
@mraible
+ =
🌅
Bootiful Development with Spring Boot and React
Matt
Raible
Bootiful Development with Spring Boot and React
Bootiful Development with Spring Boot and React
http://flickr.com/photos/leecullivan/122271605/
http://flickr.com/photos/crowleymr/2530170585/
http://www.flickr.com/photos/mraible/2644737051/
http://www.travelblog.org/Photos/1597321.html
Bootiful Development with Spring Boot and React
Bootiful Development with Spring Boot and React
Bootiful Development with Spring Boot and React
developer.okta.com
Bootiful Development with Spring Boot and React
@spring_io
#springio17
Okta Supports Authentication Standards
What about You?
Bootiful Development
http://bit.ly/boot-and-react
OAuth 2.0 Overview
Today’s Agenda
Why Spring Boot?

Demo: Developing with Spring Boot

Introduction to ES6 and TypeScript

Why React?

Demo: Developing with React

Introduction to PWAs and JHipster
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

Embeds Tomcat, Jetty or Undertow directly
SPRING INITIALIZR @ start.spring.io
Bootiful Development with Spring Boot and React
@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<Blog, Long> {
}
@spring_io
#springio17
Microservices with Spring Boot
https://developer.okta.com/blog/2017/06/15/build-microservices-architecture-spring-boot
Demo: Build a Spring Boot API
ES6, ES7 and TypeScript
ES5: es5.github.io 

ES6: git.io/es6features 

ES7: bit.ly/es7features

TS: www.typescriptlang.org
TSES7ES6ES5
http://caniuse.com/#search=es5
http://caniuse.com/#search=es6
TypeScript
$ npm install -g typescript
function greeter(person: string) {

return "Hello, " + person;

}



var user = "Jane User";



document.body.innerHTML = greeter(user);
$ tsc greeter.ts
https://www.typescriptlang.org/docs/tutorial.html
@spring_io
#springio17
bus.ts
TypeScript 2.3
“Node.js is a JavaScript runtime built on Chrome's V8
JavaScript engine. Node.js uses an event-driven, non-
blocking I/O model that makes it lightweight and
efficient. Node.js' package ecosystem, npm, is the
largest ecosystem of open source libraries in the world.”
https://nodejs.org
https://github.com/creationix/nvm
@spring_io
#springio17
Leading JavaScript Frameworks in 2017
angular.io
facebook.github.io/react
vuejs.org
Bootiful Development with Spring Boot and React
Bootiful Development with Spring Boot and React
“Angular and React dominate:
Nothing else even comes close.”
Bootiful Development with Spring Boot and React
Crunch the Numbers
@spring_io
#springio17
Hot Frameworks hotframeworks.com
@spring_io
#springio17
Jobs on Indeed (US)
November 2017
0
2,000
4,000
6,000
8,000
React Angular Vue Polymer
@spring_io
#springio17
Stack Overflow Tags
November 2017
0
22,500
45,000
67,500
90,000
React Angular Vue Polymer
Stack Overflow Trends
https://stackoverflow.blog/2017/05/09/introducing-stack-overflow-trends
@spring_io
#springio17
GitHub Stars
November 2017
0
22,500
45,000
67,500
90,000
React Angular Vue Ember Polymer Backbone
@spring_io
#springio17
GitHub Star Growth
http://www.timqian.com/star-history
Hello World with React
http://codepen.io/gaearon/pen/ZpvBNJ?editors=0100
<div id="root"></div>
<script>
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('root')
);
</script>
Imperative Code
if (count > 99) {
if (!hasFire()) {
addFire();
}
} else {
if (hasFire()) {
removeFire();
}
}
if (count === 0) {
if (hasBadge()) {
removeBadge();
}
return;
}
if (!hasBadge()) {
addBadge();
}
var countText = count > 99 ? "99+" : count.toString();
getBadge().setText(countText);
Declarative Code
if (count === 0) {
return <div className="bell"/>;
} else if (count <= 99) {
return (
<div className="bell">
<span className="badge">{count}</span>
</div>
);
} else {
return (
<div className="bell onFire">
<span className="badge">99+</span>
</div>
);
}
Bootiful Development with Spring Boot and React
Bootiful Development with Spring Boot and React
Create React App
Create React App
Ships with documentation!
Learning React
https://vimeo.com/213710634
@spring_io
#springio17
Progressive Web Apps
Bootiful Development with Spring Boot and React
“We’ve failed on mobile”

— Alex Russell

https://youtu.be/K1SFnrf4jZo
Mobile Hates You!
How to fight back:

Implement PRPL

Get a ~$150-200 unlocked Android (e.g. Moto G4)

Use chrome://inspect && chrome://inspect?tracing

Lighthouse

DevTools Network & CPU Throttling
The PRPL Pattern
Push 

Render

Pre-cache

Lazy-load
The PRPL Pattern
Push critical resources for the initial URL route

Render initial route

Pre-cache remaining routes

Lazy-load and create remaining routes on demand
Learn More about PWAs
https://developer.okta.com/blog/2017/07/20/the-ultimate-guide-to-progressive-web-applications
Demo: Build a React Client
class BeerList extends React.Component<{}, any> {
constructor(props: any) {
super(props);
this.state = {
beers: [],
isLoading: false
};
}
componentDidMount() {
this.setState({isLoading: true});
fetch('http://localhost:8080/good-beers')
.then(response => response.json())
.then(data => this.setState({beers: data, isLoading: false}));
}
render() {
const {beers, isLoading} = this.state;
…
}
}
More Authentication with React
@spring_io
#springio17
JHipster jhipster.tech
Bootiful Development with Spring Boot and React
The JHipster Mini-Book
4.0 Release on Sep 22, 2017

jhipster-book.com 

21-points.com 

@jhipster_book

Write your own InfoQ mini-book! github.com/mraible/infoq-mini-book
Action!
Try Spring Boot

Try React

Try Okta, I’ll buy you a 🍺!

Explore PWAs

Enjoy the bootiful experience!
🔐 it down with Okta!
https://developer.okta.com/blog/2017/09/19/build-a-secure-notes-application-with-kotlin-typescript-and-okta
@SpringBootApplication
class NotesApplication
fun main(args: Array<String>) {
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<Note, Long>
DIY: Bootiful Development
http://bit.ly/boot-and-react
developer.okta.com/blog
Questions?
Keep in touch!

raibledesigns.com

@mraible

Presentations

speakerdeck.com/mraible

Code

github.com/oktadeveloper

More Related Content

PPTX
Solid principles
Monica Rodrigues
 
PPT
C#.NET
gurchet
 
PPT
Introduction to c#
OpenSource Technologies Pvt. Ltd.
 
PDF
JavaScript Promises
Derek Willian Stavis
 
PPTX
Introduction to Spring Boot
Purbarun Chakrabarti
 
PDF
Spring Boot
Jaydeep Kale
 
PPTX
Jenkins CI presentation
Jonathan Holloway
 
PPTX
Building a REST Service in minutes with Spring Boot
Omri Spector
 
Solid principles
Monica Rodrigues
 
C#.NET
gurchet
 
JavaScript Promises
Derek Willian Stavis
 
Introduction to Spring Boot
Purbarun Chakrabarti
 
Spring Boot
Jaydeep Kale
 
Jenkins CI presentation
Jonathan Holloway
 
Building a REST Service in minutes with Spring Boot
Omri Spector
 

What's hot (20)

PDF
Gradle Introduction
Dmitry Buzdin
 
PDF
Spring MVC to iOS and the REST
Roy Clarkson
 
PDF
P6 Services: How to install, configure, tips and troubleshooting
p6academy
 
PDF
Introduction to Ruby
kim.mens
 
PPTX
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
PPTX
ASP.NET Core MVC + Web API with Overview
Shahed Chowdhuri
 
PPT
Docker introduction
Phuc Nguyen
 
ODP
Ruby
Aizat Faiz
 
PDF
Grokking Techtalk #39: How to build an event driven architecture with Kafka ...
Grokking VN
 
PDF
Microservice Architecture using Spring Boot with React & Redux
NexThoughts Technologies
 
PDF
How to Monitoring the SRE Golden Signals (E-Book)
Siglos
 
PPTX
Jdbc_ravi_2016
Ravinder Singh Karki
 
PDF
Swift in SwiftUI
Bongwon Lee
 
PDF
Demystifying DevSecOps
Archana Joshi
 
PDF
Refactoring
Artem Tabalin
 
PPT
C# basics
Dinesh kumar
 
PDF
IBM WebSphere application server
IBM Sverige
 
PDF
Clean Architecture Applications in Python
Subhash Bhushan
 
PDF
06. operator overloading
Haresh Jaiswal
 
PDF
Nestjs MasterClass Slides
Nir Kaufman
 
Gradle Introduction
Dmitry Buzdin
 
Spring MVC to iOS and the REST
Roy Clarkson
 
P6 Services: How to install, configure, tips and troubleshooting
p6academy
 
Introduction to Ruby
kim.mens
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
ASP.NET Core MVC + Web API with Overview
Shahed Chowdhuri
 
Docker introduction
Phuc Nguyen
 
Grokking Techtalk #39: How to build an event driven architecture with Kafka ...
Grokking VN
 
Microservice Architecture using Spring Boot with React & Redux
NexThoughts Technologies
 
How to Monitoring the SRE Golden Signals (E-Book)
Siglos
 
Jdbc_ravi_2016
Ravinder Singh Karki
 
Swift in SwiftUI
Bongwon Lee
 
Demystifying DevSecOps
Archana Joshi
 
Refactoring
Artem Tabalin
 
C# basics
Dinesh kumar
 
IBM WebSphere application server
IBM Sverige
 
Clean Architecture Applications in Python
Subhash Bhushan
 
06. operator overloading
Haresh Jaiswal
 
Nestjs MasterClass Slides
Nir Kaufman
 
Ad

Similar to Bootiful Development with Spring Boot and React (20)

PDF
Bootiful Development with Spring Boot and React - UberConf 2018
Matt Raible
 
PDF
Bootiful Development with Spring Boot and React - Dublin JUG 2018
Matt Raible
 
PDF
Bootiful Development with Spring Boot and React - Belfast JUG 2018
Matt Raible
 
PDF
Bootiful Development with Spring Boot and React - Richmond JUG 2018
Matt Raible
 
PDF
Bootiful Development with Spring Boot and React - SpringOne 2017
Matt Raible
 
PDF
Bootiful Development with Spring Boot and React - RWX 2017
Matt Raible
 
PDF
Bootiful Development with Spring Boot and React - GIDS 2019
Matt Raible
 
PDF
Front End Development for Back End Java Developers - Jfokus 2020
Matt Raible
 
PDF
Bootiful Development with Spring Boot and Vue - RWX 2018
Matt Raible
 
PDF
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
DevDay Da Nang
 
PDF
Bootiful Development with Spring Boot and Angular - RWX 2018
Matt Raible
 
PDF
Develop Hip APIs and Apps with Spring Boot and Angular - Connect.Tech 2017
Matt Raible
 
PDF
Aura LA GDG - July 17-2017
Kristan Uccello
 
PDF
Immediate download Quarkus Cookbook Kubernetes Optimized Java Solutions 1st E...
beyenfgdhd
 
PDF
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Matt Raible
 
PDF
Bootiful Development with Spring Boot and Vue - Devnexus 2019
Matt Raible
 
PDF
Spring Boot 30 Crash Course Mastering Spring Boot From Application Developmen...
rondkmiklau
 
PDF
Download full Quarkus Cookbook Kubernetes Optimized Java Solutions 1st Editio...
risyadnaub
 
PDF
Hacking with Spring Boot 2.3: Reactive Edition
honiestruga
 
Bootiful Development with Spring Boot and React - UberConf 2018
Matt Raible
 
Bootiful Development with Spring Boot and React - Dublin JUG 2018
Matt Raible
 
Bootiful Development with Spring Boot and React - Belfast JUG 2018
Matt Raible
 
Bootiful Development with Spring Boot and React - Richmond JUG 2018
Matt Raible
 
Bootiful Development with Spring Boot and React - SpringOne 2017
Matt Raible
 
Bootiful Development with Spring Boot and React - RWX 2017
Matt Raible
 
Bootiful Development with Spring Boot and React - GIDS 2019
Matt Raible
 
Front End Development for Back End Java Developers - Jfokus 2020
Matt Raible
 
Bootiful Development with Spring Boot and Vue - RWX 2018
Matt Raible
 
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
DevDay Da Nang
 
Bootiful Development with Spring Boot and Angular - RWX 2018
Matt Raible
 
Develop Hip APIs and Apps with Spring Boot and Angular - Connect.Tech 2017
Matt Raible
 
Aura LA GDG - July 17-2017
Kristan Uccello
 
Immediate download Quarkus Cookbook Kubernetes Optimized Java Solutions 1st E...
beyenfgdhd
 
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Matt Raible
 
Bootiful Development with Spring Boot and Vue - Devnexus 2019
Matt Raible
 
Spring Boot 30 Crash Course Mastering Spring Boot From Application Developmen...
rondkmiklau
 
Download full Quarkus Cookbook Kubernetes Optimized Java Solutions 1st Editio...
risyadnaub
 
Hacking with Spring Boot 2.3: Reactive Edition
honiestruga
 
Ad

More from VMware Tanzu (20)

PDF
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
PDF
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
PDF
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
PPTX
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
PDF
Spring Update | July 2023
VMware Tanzu
 
PPTX
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
PPTX
Building Cloud Ready Apps
VMware Tanzu
 
PDF
Spring Boot 3 And Beyond
VMware Tanzu
 
PDF
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
PDF
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
PDF
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
PPTX
tanzu_developer_connect.pptx
VMware Tanzu
 
PDF
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
PDF
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
PDF
Virtual Developer Connect Workshop - English
VMware Tanzu
 
PDF
Tanzu Developer Connect - French
VMware Tanzu
 
PDF
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
PDF
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
PDF
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
PDF
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
Spring Update | July 2023
VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
Building Cloud Ready Apps
VMware Tanzu
 
Spring Boot 3 And Beyond
VMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
tanzu_developer_connect.pptx
VMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
Virtual Developer Connect Workshop - English
VMware Tanzu
 
Tanzu Developer Connect - French
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 

Recently uploaded (20)

PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
PDF
Why Your AI & Cybersecurity Hiring Still Misses the Mark in 2025
Virtual Employee Pvt. Ltd.
 
PPTX
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
PPTX
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Software Development Company | KodekX
KodekX
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
Why Your AI & Cybersecurity Hiring Still Misses the Mark in 2025
Virtual Employee Pvt. Ltd.
 
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Software Development Company | KodekX
KodekX
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Doc9.....................................
SofiaCollazos
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 

Bootiful Development with Spring Boot and React