SlideShare a Scribd company logo
Matt Raible | @mraible
Bootiful Development with Spring Boot and React
April 23, 2019
Photo by Premnath Thirumalaisam
https://www.flickr.com/photos/premnath/9939139384
Blogger on raibledesigns.com and

developer.okta.com/blog
Web Developer and Java Champion
Father, Skier, Mountain Biker,
Whitewater Rafter
Open Source Connoisseur
Who is Matt Raible?
Bus Lover
Okta Developer Advocate
Bootiful Development with Spring Boot and React - GIDS 2019
Bootiful Development with Spring Boot and React - GIDS 2019
Bootiful Development with Spring Boot and React - GIDS 2019
developer.okta.com
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 - GIDS 2019
@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
@spring_io
#springio17
Secure Microservices with Spring Boot
https://developer.okta.com/blog/2018/02/13/secure-spring-microservices-with-oauth
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
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
“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 2019
angular.io
facebook.github.io/react
vuejs.org
Bootiful Development with Spring Boot and React - GIDS 2019
“2018: The Year of React
React won the popularity battle in 2017.”
Bootiful Development with Spring Boot and React - GIDS 2019
“React kept a firm grip on its lead in 2018.”
Crunch the Numbers
Hot Frameworks hotframeworks.com
Hot Frameworks hotframeworks.com
Jobs on Indeed (US)
April 2019
0
2,500
5,000
7,500
10,000
React Angular Vue Vanilla
Stack Overflow Tags
April 2019
0
45,000
90,000
135,000
180,000
React Angular Vue
GitHub Stars
April 2019
0
35,000
70,000
105,000
140,000
React Angular Vue
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 - GIDS 2019
Learning React
https://vimeo.com/213710634
@spring_io
#springio17
React Courses on egghead.io
https://blog.kentcdodds.com/learn-react-fundamentals-and-advanced-patterns-eac90341c9db
@spring_io
#springio17
Progressive Web Apps
“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 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;
…
}
}
@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! ✨
Bootiful Development with Spring Boot and React - GIDS 2019
The JHipster Mini-Book
5.0.2 Released last week!

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

Explore PWAs

Enjoy the bootiful experience!
DIY: Bootiful Development
http://bit.ly/boot-and-react
CRUD with React and Spring Boot
http://bit.ly/react-boot-crud
Bootiful React with a Java EE API
https://developer.okta.com/blog/2018/09/12/secure-java-ee-rest-api
developer.okta.com/blog
@oktadev
Questions?
Keep in touch!

raibledesigns.com

@mraible

Presentations

speakerdeck.com/mraible

Code

github.com/oktadeveloper

More Related Content

What's hot (19)

PDF
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
Matt Raible
 
PDF
Front End Development for Back End Developers - Devoxx UK 2017
Matt Raible
 
PDF
Bootiful Development with Spring Boot and React - Dublin JUG 2018
Matt Raible
 
PDF
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
Matt Raible
 
PDF
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Matt Raible
 
PDF
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Matt Raible
 
PDF
Building a PWA with Ionic, Angular, and Spring Boot - GeeCON 2017
Matt Raible
 
PPT
Building your first Native iOs App with an API Backend
Apigee | Google Cloud
 
PDF
We Are Developers - Modern React (Suspense, Context, Hooks) - Roy Derks
Roy Derks
 
PDF
20210411 全端網頁開發起手式:建構並佈署Angular網頁應用程式至GCP
Kun-Neng Hung
 
PDF
ServiceWorkerとES6 Modules時代のTypescript開発考察
Taketoshi 青野健利
 
PDF
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
🎤 Hanno Embregts 🎸
 
PDF
Angular vs React Smackdown - Devoxx BE 2017
Matt Raible
 
PDF
Rapid Android Development for Hackathon
CodePolitan
 
PDF
Testing Angular Applications - Jfokus 2017
Matt Raible
 
PDF
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
RianneEmbregts
 
PDF
Polymer and Firebase: Componentizing the Web in Realtime
Juarez Filho
 
PPTX
Grails Spring Boot
TO THE NEW | Technology
 
PDF
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Matt Raible
 
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
Matt Raible
 
Front End Development for Back End Developers - Devoxx UK 2017
Matt Raible
 
Bootiful Development with Spring Boot and React - Dublin JUG 2018
Matt Raible
 
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Matt Raible
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Matt Raible
 
Building a PWA with Ionic, Angular, and Spring Boot - GeeCON 2017
Matt Raible
 
Building your first Native iOs App with an API Backend
Apigee | Google Cloud
 
We Are Developers - Modern React (Suspense, Context, Hooks) - Roy Derks
Roy Derks
 
20210411 全端網頁開發起手式:建構並佈署Angular網頁應用程式至GCP
Kun-Neng Hung
 
ServiceWorkerとES6 Modules時代のTypescript開発考察
Taketoshi 青野健利
 
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
🎤 Hanno Embregts 🎸
 
Angular vs React Smackdown - Devoxx BE 2017
Matt Raible
 
Rapid Android Development for Hackathon
CodePolitan
 
Testing Angular Applications - Jfokus 2017
Matt Raible
 
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
RianneEmbregts
 
Polymer and Firebase: Componentizing the Web in Realtime
Juarez Filho
 
Grails Spring Boot
TO THE NEW | Technology
 
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Matt Raible
 

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

PDF
Bootiful Development with Spring Boot and React - Richmond 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 - UberConf 2018
Matt Raible
 
PDF
Bootiful Development with Spring Boot and React - RWX 2017
Matt Raible
 
PDF
Bootiful Development with Spring Boot and React
VMware Tanzu
 
PDF
Bootiful Development with Spring Boot and React - SpringOne 2017
Matt Raible
 
PDF
Front End Development for Back End Java Developers - Jfokus 2020
Matt Raible
 
PDF
Front End Development for Back End Developers - Denver Startup Week 2017
Matt Raible
 
PDF
Bootiful Development with Spring Boot and Vue - Devnexus 2019
Matt Raible
 
PDF
Experiences building apps with React Native @DomCode 2016
Adrian Philipp
 
PDF
Experiences building apps with React Native @UtrechtJS May 2016
Adrian Philipp
 
PDF
Top Reasons to Use ReactJS for Web Development
Oliver Grady
 
PDF
Spring Boot APIs and Angular PWAs: Get Hip with JHipster - PWX 2019
Matt Raible
 
PDF
Why Use React Js A Complete Guide (1).pdf
Katy Slemon
 
PPTX
Comprehensive Guide to React Development 2022.pptx
75waytechnologies
 
PDF
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
DevDay Da Nang
 
PDF
learning react
Eueung Mulyana
 
PDF
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Matt Raible
 
PDF
Front End Development for Back End Java Developers - NYJavaSIG 2019
Matt Raible
 
PDF
Web Development with Delphi and React - ITDevCon 2016
Marco Breveglieri
 
Bootiful Development with Spring Boot and React - Richmond JUG 2018
Matt Raible
 
Bootiful Development with Spring Boot and React - Belfast JUG 2018
Matt Raible
 
Bootiful Development with Spring Boot and React - UberConf 2018
Matt Raible
 
Bootiful Development with Spring Boot and React - RWX 2017
Matt Raible
 
Bootiful Development with Spring Boot and React
VMware Tanzu
 
Bootiful Development with Spring Boot and React - SpringOne 2017
Matt Raible
 
Front End Development for Back End Java Developers - Jfokus 2020
Matt Raible
 
Front End Development for Back End Developers - Denver Startup Week 2017
Matt Raible
 
Bootiful Development with Spring Boot and Vue - Devnexus 2019
Matt Raible
 
Experiences building apps with React Native @DomCode 2016
Adrian Philipp
 
Experiences building apps with React Native @UtrechtJS May 2016
Adrian Philipp
 
Top Reasons to Use ReactJS for Web Development
Oliver Grady
 
Spring Boot APIs and Angular PWAs: Get Hip with JHipster - PWX 2019
Matt Raible
 
Why Use React Js A Complete Guide (1).pdf
Katy Slemon
 
Comprehensive Guide to React Development 2022.pptx
75waytechnologies
 
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
DevDay Da Nang
 
learning react
Eueung Mulyana
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Matt Raible
 
Front End Development for Back End Java Developers - NYJavaSIG 2019
Matt Raible
 
Web Development with Delphi and React - ITDevCon 2016
Marco Breveglieri
 
Ad

More from Matt Raible (20)

PDF
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Matt Raible
 
PDF
Micro Frontends for Java Microservices - Belfast JUG 2022
Matt Raible
 
PDF
Micro Frontends for Java Microservices - Dublin JUG 2022
Matt Raible
 
PDF
Micro Frontends for Java Microservices - Cork JUG 2022
Matt Raible
 
PDF
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Matt Raible
 
PDF
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Matt Raible
 
PDF
Comparing Native Java REST API Frameworks - Devoxx France 2022
Matt Raible
 
PDF
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Matt Raible
 
PDF
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Matt Raible
 
PDF
Java REST API Framework Comparison - PWX 2021
Matt Raible
 
PDF
Web App Security for Java Developers - PWX 2021
Matt Raible
 
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Matt Raible
 
PDF
Web App Security for Java Developers - UberConf 2021
Matt Raible
 
PDF
Java REST API Framework Comparison - UberConf 2021
Matt Raible
 
PDF
Native Java with Spring Boot and JHipster - SF JUG 2021
Matt Raible
 
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Matt Raible
 
PDF
JHipster and Okta - JHipster Virtual Meetup December 2020
Matt Raible
 
PDF
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Matt Raible
 
PDF
Security Patterns for Microservice Architectures - SpringOne 2020
Matt Raible
 
PDF
Security Patterns for Microservice Architectures - ADTMag Microservices & API...
Matt Raible
 
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Matt Raible
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Matt Raible
 
Micro Frontends for Java Microservices - Dublin JUG 2022
Matt Raible
 
Micro Frontends for Java Microservices - Cork JUG 2022
Matt Raible
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Matt Raible
 
Comparing Native Java REST API Frameworks - Devoxx France 2022
Matt Raible
 
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Matt Raible
 
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Matt Raible
 
Java REST API Framework Comparison - PWX 2021
Matt Raible
 
Web App Security for Java Developers - PWX 2021
Matt Raible
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Matt Raible
 
Web App Security for Java Developers - UberConf 2021
Matt Raible
 
Java REST API Framework Comparison - UberConf 2021
Matt Raible
 
Native Java with Spring Boot and JHipster - SF JUG 2021
Matt Raible
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Matt Raible
 
JHipster and Okta - JHipster Virtual Meetup December 2020
Matt Raible
 
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Matt Raible
 
Security Patterns for Microservice Architectures - SpringOne 2020
Matt Raible
 
Security Patterns for Microservice Architectures - ADTMag Microservices & API...
Matt Raible
 
Ad

Recently uploaded (20)

PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 

Bootiful Development with Spring Boot and React - GIDS 2019