SlideShare a Scribd company logo
Matt Raible | @mraible
Bootiful Development w/ Spring Boot and Angular
December 4, 2018
https://www.flickr.com/photos/captainkimo/15356999583
#RWX2018
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 Angular - RWX 2018
Bootiful Development with Spring Boot and Angular - RWX 2018
Bootiful Development with Spring Boot and Angular - RWX 2018
What about You?
Bootiful Development
http://bit.ly/boot-and-ng
OAuth 2.0 Overview
Today’s Agenda
Why Spring Boot?

Demo: Developing with Spring Boot

Introduction to ES6 and TypeScript

Why Angular?

Demo: Developing with Angular

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_io
#springio17
Another Perspective
https://twitter.com/phillip_webb/status/641444531867680768
“You can’t make a delicious cake without the correct ingredients!”
SPRING INITIALIZR @ start.spring.io
Bootiful Development with Spring Boot and Angular - RWX 2018
@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
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 2018
angular.io
facebook.github.io/react
vuejs.org
Bootiful Development with Spring Boot and Angular - RWX 2018
Bootiful Development with Spring Boot and Angular - RWX 2018
“Angular and React dominate:
Nothing else even comes close.”
Bootiful Development with Spring Boot and Angular - RWX 2018
Crunch the Numbers
@spring_io
#springio17
Hot Frameworks hotframeworks.com
@spring_io
#springio17
Jobs on Indeed (US)
December 2018
0
2,750
5,500
8,250
11,000
React Angular Vue
@spring_io
#springio17
Stack Overflow Tags
December 2018
0
40,000
80,000
120,000
160,000
React Angular Vue
@spring_io
#springio17
GitHub Stars
December 2018
0
32,500
65,000
97,500
130,000
React Angular Vue
@spring_io
#springio17
GitHub Star Growth
http://www.timqian.com/star-history
Hello World with Angular
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `<h1>Hello {{name}}</h1>`
})
export class AppComponent {
name = 'World';
}
<my-app></my-app>
Hello World with Angular
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Hello World with Angular
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
Bootiful Development with Spring Boot and Angular - RWX 2018
Angular CLI
Angular CLI
Angular CLI
Get Started with Angular
Angular QuickStart

https://angular.io/guide/quickstart 

Angular Seed

https://github.com/mgechev/angular-seed

Angular Seed Advanced

https://github.com/NathanWalker/angular-seed-advanced
Demo: Build an Angular Client
export class BeerListComponent implements OnInit {
beers: Array<any>;
constructor(private beerService: BeerService,
private giphyService: GiphyService) { }
ngOnInit() {
this.beerService.getAll().subscribe(
data => {
this.beers = data;
for (let beer of this.beers) {
this.giphyService.get(beer.name).subscribe(url => {
beer.giphyUrl = url;
});
}
},
error => console.log(error)
)
}
}
@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
@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. 
@spring_io
#springio17
Microservices with JHipster
Bootiful Development with Spring Boot and Angular - RWX 2018
The JHipster Mini-Book
5.0 Release on November 14, 2018

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 Angular

Try OIDC

Explore PWAs

Enjoy the bootifulness!
Try Kotlin
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-ng
@spring_io
#springio17
Angular 7 Goodness
https://developer.okta.com/blog/2018/12/04/angular-7-oidc-oauth2-pkce
@spring_io
#springio17
Angular 7 + Spring Boot 2.1 Screencast
https://youtu.be/HoDzatvGDlI
Security Books
https://developer.okta.com/books/api-securityhttps://www.oauth.com
developer.okta.com/blog
@oktadev
Questions?
Keep in touch!

raibledesigns.com

@mraible

Presentations

speakerdeck.com/mraible

Code

github.com/oktadeveloper
developer.okta.com

More Related Content

PDF
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
PDF
Bootiful Development with Spring Boot and Vue - RWX 2018
PDF
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
PDF
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
PDF
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
PDF
Front End Development for Back End Developers - Devoxx UK 2017
PDF
Building a PWA with Ionic, Angular, and Spring Boot - GeeCON 2017
PDF
Get Hip with Java Hipster - JavaOne 2017
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Bootiful Development with Spring Boot and Vue - RWX 2018
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017
Building a PWA with Ionic, Angular, and Spring Boot - GeeCON 2017
Get Hip with Java Hipster - JavaOne 2017

What's hot (20)

PDF
Develop Hip APIs and Apps with Spring Boot and Angular - Connect.Tech 2017
PDF
Bootiful Development with Spring Boot and React - RWX 2017
PDF
Bootiful Development with Spring Boot and React - SpringOne 2017
PDF
Bootiful Development with Spring Boot and React - GIDS 2019
PDF
Titanium Alloy Tutorial
PDF
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
PPT
Titanium Alloy Framework
PPTX
Alloy Simple App Demonstration
PDF
Appcelerator Titanium Alloy
PDF
React Nativeの光と闇
PDF
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
PDF
Front End Development for Backend Developers - GIDS 2019
PDF
Microservices for the Masses with Spring Boot, JHipster, and JWT - Devoxx UK...
PDF
Using JHipster 4 for generating Angular/Spring Boot apps
PDF
Microservices for the Masses with Spring Boot, JHipster, and JWT - J-Spring 2017
PDF
Appcelerator Titanium Alloy
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
PDF
Bootiful Development with Spring Boot and React - Richmond JUG 2018
PDF
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
PDF
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
Develop Hip APIs and Apps with Spring Boot and Angular - Connect.Tech 2017
Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - GIDS 2019
Titanium Alloy Tutorial
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Titanium Alloy Framework
Alloy Simple App Demonstration
Appcelerator Titanium Alloy
React Nativeの光と闇
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Front End Development for Backend Developers - GIDS 2019
Microservices for the Masses with Spring Boot, JHipster, and JWT - Devoxx UK...
Using JHipster 4 for generating Angular/Spring Boot apps
Microservices for the Masses with Spring Boot, JHipster, and JWT - J-Spring 2017
Appcelerator Titanium Alloy
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
Bootiful Development with Spring Boot and React - Richmond JUG 2018
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
Ad

Similar to Bootiful Development with Spring Boot and Angular - RWX 2018 (20)

PDF
Front End Development for Back End Developers - vJUG24 2017
PDF
Front End Development for Back End Developers - UberConf 2017
PPTX
Introduction to Angular2
PDF
Angular components
PDF
Front End Development for Back End Java Developers - NYJavaSIG 2019
PDF
Spring Boot
PPTX
Session 3 - SPRING BOOT - Accessing Actuator EndPoint.pptx
PDF
Appium workshop technopark trivandrum
PPTX
Angular 2 Básico
PPTX
Jan 2017 - a web of applications (angular 2)
PDF
Using JHipster for generating Angular/Spring Boot apps
PDF
Front End Development for Back End Java Developers - Jfokus 2020
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
PDF
Introduction to Angular 2
DOCX
Angular2RoutingSetupByShubham
PPTX
Building a TV show with Angular, Bootstrap, and Web Services
PPTX
Angular IO
PDF
Bootiful Development with Spring Boot and Vue - Devnexus 2019
PDF
Spring Boot Interview Questions PDF By ScholarHat
PDF
Maciej Treder ''Angular Universal - a medicine for the Angular + SEO/CDN issu...
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - UberConf 2017
Introduction to Angular2
Angular components
Front End Development for Back End Java Developers - NYJavaSIG 2019
Spring Boot
Session 3 - SPRING BOOT - Accessing Actuator EndPoint.pptx
Appium workshop technopark trivandrum
Angular 2 Básico
Jan 2017 - a web of applications (angular 2)
Using JHipster for generating Angular/Spring Boot apps
Front End Development for Back End Java Developers - Jfokus 2020
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
Introduction to Angular 2
Angular2RoutingSetupByShubham
Building a TV show with Angular, Bootstrap, and Web Services
Angular IO
Bootiful Development with Spring Boot and Vue - Devnexus 2019
Spring Boot Interview Questions PDF By ScholarHat
Maciej Treder ''Angular Universal - a medicine for the Angular + SEO/CDN issu...
Ad

More from Matt Raible (20)

PDF
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
PDF
Micro Frontends for Java Microservices - Belfast JUG 2022
PDF
Micro Frontends for Java Microservices - Dublin JUG 2022
PDF
Micro Frontends for Java Microservices - Cork JUG 2022
PDF
Comparing Native Java REST API Frameworks - Seattle JUG 2022
PDF
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
PDF
Comparing Native Java REST API Frameworks - Devoxx France 2022
PDF
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
PDF
Native Java with Spring Boot and JHipster - Garden State JUG 2021
PDF
Java REST API Framework Comparison - PWX 2021
PDF
Web App Security for Java Developers - PWX 2021
PDF
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
PDF
Web App Security for Java Developers - UberConf 2021
PDF
Java REST API Framework Comparison - UberConf 2021
PDF
Native Java with Spring Boot and JHipster - SF JUG 2021
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
PDF
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
PDF
JHipster and Okta - JHipster Virtual Meetup December 2020
PDF
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Java REST API Framework Comparison - PWX 2021
Web App Security for Java Developers - PWX 2021
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Web App Security for Java Developers - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
Native Java with Spring Boot and JHipster - SF JUG 2021
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
JHipster and Okta - JHipster Virtual Meetup December 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020

Recently uploaded (20)

PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Transform Your Business with a Software ERP System
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
assetexplorer- product-overview - presentation
PDF
Digital Strategies for Manufacturing Companies
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Transform Your Business with a Software ERP System
Why Generative AI is the Future of Content, Code & Creativity?
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Design an Analysis of Algorithms II-SECS-1021-03
Operating system designcfffgfgggggggvggggggggg
Internet Downloader Manager (IDM) Crack 6.42 Build 41
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Designing Intelligence for the Shop Floor.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
L1 - Introduction to python Backend.pptx
Reimagine Home Health with the Power of Agentic AI​
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Understanding Forklifts - TECH EHS Solution
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
assetexplorer- product-overview - presentation
Digital Strategies for Manufacturing Companies

Bootiful Development with Spring Boot and Angular - RWX 2018