Slide 1

Slide 1 text

Matt Raible | @mraible Get Hip with JHipster October 3, 2017 Photo Credit: https://www.flickr.com/photos/craigfildes/30894503974

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

public class Okta { public Okta(DeveloperDNA developerDna) { DeveloperRelations devRel = developerDna.getDeveloperRelations(); Assert.notNull(devRel,"Developer Relations is required to operate effectively."); Set team = devRel.getTeam(); Assert.isTrue(!team.isEmpty(),"Team cannot be empty."); Assert.isTrue(!devRel.getSdks().isEmpty(), "SDKs required for developers."); } }

Slide 5

Slide 5 text

Authentication Standards

Slide 6

Slide 6 text

What about YOU? Are you a Java Developer? Web Developer? How long have you been doing web development? Do you like JSF? Do you like GWT? Do you like JavaScript?

Slide 7

Slide 7 text

Do you want to be a hip Java Developer?

Slide 8

Slide 8 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 9

Slide 9 text

Hipster n. noun 1. One who is exceptionally aware of or interested in the latest trends and tastes.

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Latest trends in JavaLand? Microservices Embedded App Servers Deployment with Containers Environments: dev, test, production Auto-Configuration Monitoring

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

SPRING INITIALIZR @ start.spring.io

Slide 14

Slide 14 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 15

Slide 15 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 16

Slide 16 text

No content

Slide 17

Slide 17 text

@spring_io #springio17 Microservices with Spring Boot https://developer.okta.com/blog/2017/06/15/build-microservices-architecture-spring-boot

Slide 18

Slide 18 text

Latest trends in Web Development? Progressive Web Applications JavaScript MVC Frameworks CSS 3 with Animations Mobile First Front-End Optimization REST APIs

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

@spring_io #springio17 Jobs on Indeed September 2017 0 1,750 3,500 5,250 7,000 Angular Aurelia Backbone Ember Knockout React Vue

Slide 22

Slide 22 text

@spring_io #springio17 Stack Overflow Tags September 2017 0 20,000 40,000 60,000 80,000 Angular Aurelia Backbone Knockout Ember React Vue

Slide 23

Slide 23 text

@spring_io #springio17 GitHub Stars August 2017 0 20,000 40,000 60,000 80,000 Angular Aurelia Backbone Knockout Ember React Vue

Slide 24

Slide 24 text

@spring_io #springio17 GitHub Star Growth

Slide 25

Slide 25 text

Wouldn’t it be hip if…? ⚭

Slide 26

Slide 26 text

JHipster www.jhipster.tech

Slide 27

Slide 27 text

JHipster is Open Source Web Statistics, September 2017 312K Page Views / 455K on GitHub 42K Downloads GitHub Statistics 8165 Stars 366 Contributors

Slide 28

Slide 28 text

JHipster Spring Boot Spring Security AngularJS Angular Bootstrap Metrics Maven or Gradle Authentication Type: cookie-based (with Social), JWT, or OAuth 2.0 Type of Database: SQL or NoSQL Caching: EhCache or Hazelcast Elasticsearch Gulp.js or Webpack Foundational Frameworks Project Options

Slide 29

Slide 29 text

How to use JHipster To install JHipster and Yeoman, use npm: npm install -g yo generator-jhipster Then create a directory and cd into it: mkdir myapp && cd myapp Then run Yeoman: yo jhipster

Slide 30

Slide 30 text

Generate a basic blog application Look at its files and configuration 
 Generate the CRUD entities Limit blogs to current user, allow HTML Deploy to Demo Time! … all in 20 minutes! ☁

Slide 31

Slide 31 text

Demo Entity Diagram

Slide 32

Slide 32 text

Get Started with JHipster 4 Demo https://github.com/mraible/jhipster4-demo https://www.youtube.com/watch?v=XRREt1KB4Y8

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

JHipster is Knowledge

Slide 35

Slide 35 text

The JHipster Mini-Book Written with Asciidoctor Quick and to the point, 130 pages Developed a Real World App: www.21-points.com Free Download from infoq.com/minibooks/jhipster-4-mini-book

Slide 36

Slide 36 text

Lines of Code in 21-Points 0 5750 11500 17250 23000 Project Created Entities Generated Business Logic and UI 22,876 21,355 15,173

Slide 37

Slide 37 text

Learn More twitter.com/java_hipster www.jhipster.tech github.com/jhipster/generator-jhipster Get Started with JHipster 4: https://youtu.be/XRREt1KB4Y8 JHipster Microservices, Google Cloud, and Kubernetes
 https://youtu.be/dgVQOYEwleA

Slide 38

Slide 38 text

Getting Help stackoverflow.com/tags/jhipster gitter.im/jhipster/generator-jhipster github.com/jhipster/.../CONTRIBUTING.md groups.google.com/.../jhipster-dev

Slide 39

Slide 39 text

What’s New and Next? http://start.jhipster.tech now available! JHipster Registry v3 Spring Boot 2.0 / Spring Webflux React Support OAuth 2.0 / OIDC Support https://www.slideshare.net/julien.dubois/jhipster-overview-and-roadmap-august-2017

Slide 40

Slide 40 text

developer.okta.com/blog

Slide 41

Slide 41 text

developer.okta.com

Slide 42

Slide 42 text

Action! Try Spring Boot Try Angular Try JHipster Explore PWAs Enjoy the bootiful experience!

Slide 43

Slide 43 text

Questions? Keep in touch! raibledesigns.com @mraible Presentations speakerdeck.com/mraible Code github.com/oktadeveloper