SlideShare a Scribd company logo
1 of 72
Download to read offline
Matt Raible | @mraible
October 8, 2021
Java REST API Comparison


Micronaut, Quarkus, and
Spring Boot
@mraible
Who is 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
@mraible
Today’s Agenda
Why Java?


Build { REST, GraphQL } APIs with Java


Secure your APIs with OAuth 2.1


Build with Docker


Go Native with GraalVM
https://unsplash.com/photos/JsTmUnHdVYQ
@mraible
Why Java?
25+ Years


of use, abuse, and improvements


Open Source


code is available; many popular open source


frameworks and tools


Hugely Popular and widely used


by many enterprises and web-scale companies
@mraible
Download the JDK from OpenJDK


https://jdk.java.net/17


Or from Adoptium


https://adoptium.net
Get Started with Java 17
@mraible
Get Started with Java 17
Better yet, use SDKMAN!


curl -s https://get.sdkman.io | bash


sdk install java 17-open
Java Releases and Features
https://developer.okta.com/blog/2020/01/09/java-rest-api-showdown
Build REST APIs with Java
Serverless
💵 💸 https://unsplash.com/photos/glRqyWJgUeY
@mraible
sdk install micronaut


mn create-app com.okta.rest.app 


-b maven -f security-jwt
Get Started with Micronaut
https://micronaut.io/launch
package com.okta.rest.controller;


import io.micronaut.http.MediaType;


import io.micronaut.http.annotation.Controller;


import io.micronaut.http.annotation.Get;


import io.micronaut.http.annotation.Produces;


import io.micronaut.security.annotation.Secured;


import io.micronaut.security.rules.SecurityRule;


import java.security.Principal;


@Controller("/hello")


public class HelloController {


@Get


@Secured(SecurityRule.IS_AUTHENTICATED)


@Produces(MediaType.TEXT_PLAIN)


public String hello(Principal principal) {


return "Hello, " + principal.getName() + "!";


}


}
micronaut.security.enabled=true


micronaut.security.token.jwt.enabled=true


micronaut.security.token.jwt.signatures.jwks.okta.url=
https://dev-133337.okta.com/oauth2/default/v1/keys
Micronaut JWT Security
micronaut.security.enabled=true


micronaut.security.token.jwt.enabled=true


micronaut.security.token.jwt.signatures.jwks.okta.url=
https://dev-133337.okta.com/oauth2/default/v1/keys
Micronaut JWT Security
https://micronaut-projects.github.io/micronaut-security/latest/guide/#jwt
Install HTTPie (a better cURL)
$ <tool> install httpie
https://httpie.org
Test Micronaut with HTTPie
https://httpie.org
mvn mn:run


http :8080/hello


TOKEN=eyJraWQiOiJxOE1QMjFNNHZCVmxOSkxGbFFWNlN...


http :8080/hello Authorization:"Bearer $TOKEN"
Verify Micronaut API with HTTPie
@mraible
Get Started with Quarkus
mvn io.quarkus:quarkus-maven-plugin:2.3.0.Final:create 


-DprojectGroupId=com.okta.rest 


-DprojectArtifactId=quarkus 


-DclassName="com.okta.rest.quarkus.HelloResource" 


-Dpath="/hello" 


-Dextensions="smallrye-jwt,resteasy-reactive"
https://code.quarkus.io
package com.okta.rest.quarkus;


import io.quarkus.security.Authenticated;


import javax.ws.rs.GET;


import javax.ws.rs.Path;


import javax.ws.rs.Produces;


import javax.ws.rs.core.Context;


import javax.ws.rs.core.MediaType;


import javax.ws.rs.core.SecurityContext;


import java.security.Principal;


@Path("/hello")


public class HelloResource {


@GET


@Path("/")


@Authenticated


@Produces(MediaType.TEXT_PLAIN)


public String hello(@Context SecurityContext context) {


Principal userPrincipal = context.getUserPrincipal();


return "Hello, " + userPrincipal.getName() + "!";


}


}
mp.jwt.verify.publickey.location=
https://dev-133337.okta.com/
oauth2/default/v1/keys


mp.jwt.verify.issuer=https://
dev-133337.okta.com/oauth2/
default
MicroProfile JWT Security
https://www.eclipse.org/community/eclipse_newsletter/2017/september/article2.php
mp.jwt.verify.publickey.location=
https://dev-133337.okta.com/
oauth2/default/v1/keys


mp.jwt.verify.issuer=https://
dev-133337.okta.com/oauth2/
default
MicroProfile JWT Security
https://www.eclipse.org/community/eclipse_newsletter/2017/september/article2.php
Test Quarkus with HTTPie
https://httpie.org
mvn quarkus:dev


http :8080/hello


TOKEN=eyJraWQiOiJxOE1QMjFNNHZCVmxOSkxGbFFWNlN...


http :8080/hello Authorization:"Bearer $TOKEN"
Verify Quarkus API with HTTPie
@mraible
Get Started with Spring Boot
http https://start.spring.io/starter.zip 


dependencies==web,oauth2-resource-server,native 


packageName==com.okta.rest 


name==spring-boot 


type==maven-project 


baseDir==spring-boot | tar -xzvf -
https://start.spring.io
package com.okta.rest.controller;


import org.springframework.web.bind.annotation.GetMapping;


import org.springframework.web.bind.annotation.RestController;


import java.security.Principal;


@RestController


public class HelloController {


@GetMapping("/hello")


public String hello(Principal principal) {


return "Hello, " + principal.getName() + "!";


}


}
Spring Security OAuth 2.0 Resource Server
https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2resourceserver
okta.oauth2.issuer=https://dev-133337.okta.com/
oauth2/default
Test Spring Boot with HTTPie
https://httpie.org
mvn spring-boot:run


http :8080/hello


TOKEN=eyJraWQiOiJxOE1QMjFNNHZCVmxOSkxGbFFWNlN...


http :8080/hello Authorization:"Bearer $TOKEN"
Verify Spring Boot API with HTTPie
@mraible
Startup Performance
Milliseconds
0
750
1500
2250
3000
Micronaut Quarkus Spring Boot
2,262
632
599
1,297
1,582
479
Dev Startup (mvn) Packaged Startup (java -jar)
https://developer.okta.com/blog/2020/01/09/java-rest-api-showdown
@mraible
Build GraphQL APIs with Java
Why GraphQL?


Does your favorite framework support GraphQL?


Micronaut


https://micronaut-projects.github.io/micronaut-graphql/latest/guide


Quarkus


https://quarkus.io/guides/smallrye-graphql


Spring Boot


https://spring.io/projects/spring-graphql
@mraible
Secure your API with OAuth 2.0
https://aaronparecki.com/2019/12/12/21/its-time-for-oauth-2-dot-1
@mraible
Secure your API with OAuth 2.1
https://oauth.net/2.1
PKCE is required for all clients using the authorization code flow


Redirect URIs must be compared using exact string matching


The Implicit grant is omitted from this specification


The Resource Owner Password Credentials grant is omitted from this specification


Bearer token usage omits the use of bearer tokens in the query string of URIs


Refresh tokens for public clients must either be sender-constrained or one-time use
@mraible
Authenticate with OpenID Connect (OIDC)
What is OpenID Connect?


Does your favorite framework support OIDC authentication?


Micronaut


https://guides.micronaut.io/latest/micronaut-oauth2-okta.html


Quarkus


https://quarkus.io/guides/security-openid-connect-web-authentication


Spring Boot


https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2login
What about testing?
@mraible
Build with Docker
Create a Dockerfile




FROM openjdk:17-alpine


ARG JAR_FILE=target/*.jar


COPY ${JAR_FILE} app.jar


EXPOSE 8080


ENTRYPOINT ["java","-jar","/app.jar"]
@mraible
Build with Docker
Build your image


docker build -t <tag-name> .


Run your image


docker run -it -p8080:8080 <tag-name>
@mraible
Build with Docker: Jib
Get Jibby with it!


mvn verify jib:build


Or build directly to your Docker daemon


mvn verify jib:dockerBuild
https://github.com/GoogleContainerTools/jib
@mraible
Build with Docker
Micronaut uses Jib, but you must configure plugins


Quarkus generates three Docker-related files


Dockerfile.jvm


Dockerfile.legacy-jar


Dockerfile.native


Dockerfile.native-distroless


Quarkus + Jib


mvn quarkus:add-extension -Dextensions="container-image-jib"
@mraible
Build with Docker
Spring Boot 2.3+ has built-in support


mvn spring-boot:build-image


Uses layered JARs for for faster builds


dependencies


snapshot-dependencies


resources


application


https://spring.io/blog/2020/01/27/creating-docker-images-with-spring-boot-2-3-0-m1
@mraible
Use Micronaut CLI


mn create-app ...


mvn package -Dpackaging=native-image


gradle nativeImage


gradle dockerBuildNative
Go Native with GraalVM and Micronaut
https://docs.micronaut.io/latest/guide/#graal
@mraible
Go Native with GraalVM and Quarkus
Create an executable without GraalVM installed


mvn package -Pnative -Dquarkus.native.container-build=true


Then, build the image


docker build -f src/main/docker/Dockerfile.native -t 


<tag-name> .


And run it


docker run -it -p8080:8080 <tag-name>
https://quarkus.io/guides/building-native-image
@mraible
Use start.spring.io to get plugins and profiles


<plugin>


<groupId>org.springframework.boot</groupId>


<artifactId>spring-boot-maven-plugin</artifactId>


<configuration>


<classifier>${repackage.classifier}</classifier>


<image>


<builder>paketobuildpacks/builder:tiny</builder>


<env>


<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>


</env>


</image>


</configuration>


</plugin>


<plugin>


<groupId>org.springframework.experimental</groupId>


<artifactId>spring-aot-maven-plugin</artifactId>


<version>${spring-native.version}</version>


<executions>
Go Native with GraalVM and Spring Boot
@mraible
Go Native with GraalVM and Spring Boot
Add milestone repositories to your pom.xml


<repositories>


<repository>


<id>spring-milestones</id>


<name>Spring Milestones</name>


<url>https://repo.spring.io/milestone</url>


</repository>


</repositories>


<pluginRepositories>


<pluginRepository>


<id>spring-milestones</id>


<name>Spring Milestones</name>


<url>https://repo.spring.io/milestone</url>


</pluginRepository>


</pluginRepositories>
@mraible
Go Native with GraalVM and Spring Boot
Add Spring Native dependency


<dependency>


<groupId>org.springframework.experimental</groupId>


<artifactId>spring-native</artifactId>


<version>0.10.4</version>


</dependency>


Build the native application


mvn spring-boot:build-image
@mraible
How we fixed the Okta Spring Boot Starter
https://youtu.be/8vY-9tXlCW4
@mraible
Native Startup Performance
Milliseconds
0
15
30
45
60
October 7, 2021
46.8
19
24
Micronaut Quarkus Spring Boot
@mraible
Native Memory Used (MB)
Milliseconds
0
25
50
75
100
October 7, 2021
82
34
62
Micronaut Quarkus Spring Boot
@mraible
Tests Run on a 2019 MacBook Pro
@mraible
Demo Time!
https://github.com/oktadev/native-java-examples
Community
@mraible
Stack Overflow Tags
0
32500
65000
97500
130000
October 7, 2021
111,521
2,011
1,205
Micronaut Quarkus Spring Boot
@mraible
GitHub Stars
0
18750
37500
56250
75000
October 7, 2021
57,600
8,600
5,100
Micronaut Quarkus Spring Boot
star-history.t9t.io/#micronaut-projects/micronaut-core&quarkusio/quarkus&spring-projects/spring-boot
GitHub Star Growth
@mraible
Jobs on Indeed (US)
0
3250
6500
9750
13000
October 7, 2021
10,532
178
136
Micronaut Quarkus Spring Boot
@mraible
Twitter Followers
0
25000
50000
75000
100000
October 7, 2021
78,500
12,600
10,600
Micronaut Quarkus Spring Boot
Hot Web Frameworks https://hotframeworks.com
@mraible
JHipster Support 🤓
Micronaut Blueprint - github.com/jhipster/generator-jhipster-micronaut


- v1.0.2, 18 releases, 16 contributors, 382 commits


// TODO: Micronaut 3, Reactive, Microservices, GraalVM native images


Quarkus Blueprint - github.com/jhipster/generator-jhipster-quarkus


- v2.0.0-beta.1, 6 releases, 16 contributors, 550 commits


// TODO: Quarkus 2.3, Dev Services, Reactive, Microservices
https://developer.okta.com/blog/2021/01/20/reactive-java-microservices
https://developer.okta.com/blog/2020/08/17/micronaut-jhipster-heroku
https://developer.okta.com/blog/2021/03/08/jhipster-quarkus-oidc
Recommendations from Twitter
https://twitter.com/mraible/status/1445753175978360832
@mraible
Action!
developer.okta.com/blog/tags/java


@oktadev
git clone https://github.com/oktadeveloper/okta-spring-webflux-react-
example.git
https://github.com/oktadev/native-java-examples
Use the Source, Luke!
Thanks!


Keep in Touch


raibledesigns.com


@mraible


Presentations


speakerdeck.com/mraible


Code


github.com/oktadev
developer.okta.com
developer.okta.com

More Related Content

What's hot

SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
Fred Sauer
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
Ariya Hidayat
 
Using React with Grails 3
Using React with Grails 3Using React with Grails 3
Using React with Grails 3
Zachary Klein
 
Spring Boot & WebSocket
Spring Boot & WebSocketSpring Boot & WebSocket
Spring Boot & WebSocket
Ming-Ying Wu
 

What's hot (20)

SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
 
Economies of Scaling Software
Economies of Scaling SoftwareEconomies of Scaling Software
Economies of Scaling Software
 
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJSDeveloping Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJS
 
Spring Boot 1.3 News #渋谷Java
Spring Boot 1.3 News #渋谷JavaSpring Boot 1.3 News #渋谷Java
Spring Boot 1.3 News #渋谷Java
 
Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010
 
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
HATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleHATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API Style
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
The Play Framework at LinkedIn
The Play Framework at LinkedInThe Play Framework at LinkedIn
The Play Framework at LinkedIn
 
Spring Boot and Microservices
Spring Boot and MicroservicesSpring Boot and Microservices
Spring Boot and Microservices
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
The Past Year in Spring for Apache Geode
The Past Year in Spring for Apache GeodeThe Past Year in Spring for Apache Geode
The Past Year in Spring for Apache Geode
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
 
Using React with Grails 3
Using React with Grails 3Using React with Grails 3
Using React with Grails 3
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spring Boot & WebSocket
Spring Boot & WebSocketSpring Boot & WebSocket
Spring Boot & WebSocket
 

Similar to Java REST API Framework Comparison - UberConf 2021

Similar to Java REST API Framework Comparison - UberConf 2021 (20)

Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
 
Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022
 
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019
 
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
 
Aug penguin16
Aug penguin16Aug penguin16
Aug penguin16
 
Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments
 
Introduction to YouDebug - Scriptable Java Debugger
Introduction to YouDebug - Scriptable Java DebuggerIntroduction to YouDebug - Scriptable Java Debugger
Introduction to YouDebug - Scriptable Java Debugger
 
Security Patterns for Microservice Architectures - ADTMag Microservices & API...
Security Patterns for Microservice Architectures - ADTMag Microservices & API...Security Patterns for Microservice Architectures - ADTMag Microservices & API...
Security Patterns for Microservice Architectures - ADTMag Microservices & API...
 
Vaadin & Web Components
Vaadin & Web ComponentsVaadin & Web Components
Vaadin & Web Components
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017
 
Not Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabsNot Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabs
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
 
Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
 

More from Matt Raible

More from Matt Raible (20)

Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
 
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022
 
Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022
 
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
 
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
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
Native Java with Spring Boot and JHipster - Garden State JUG 2021Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021
 
Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021
 
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
 
Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021
 
Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
 
JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020
 
Security Patterns for Microservice Architectures - SpringOne 2020
Security Patterns for Microservice Architectures - SpringOne 2020Security Patterns for Microservice Architectures - SpringOne 2020
Security Patterns for Microservice Architectures - SpringOne 2020
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
 
Security Patterns for Microservice Architectures - London Java Community 2020
Security Patterns for Microservice Architectures - London Java Community 2020Security Patterns for Microservice Architectures - London Java Community 2020
Security Patterns for Microservice Architectures - London Java Community 2020
 
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
 
Security Patterns for Microservice Architectures - Oktane20
Security Patterns for Microservice Architectures - Oktane20Security Patterns for Microservice Architectures - Oktane20
Security Patterns for Microservice Architectures - Oktane20
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Recently uploaded (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 

Java REST API Framework Comparison - UberConf 2021