JHipster is one of those open-source projects you stumble upon and immediately think, "Of course!" It combines three very successful frameworks in web development: Bootstrap, Angular, and Spring Boot. Bootstrap was one of the first dominant web-component frameworks. Its largest appeal was that it only required a bit of HTML and it worked! All the efforts we made in the Java community to develop web components were shown a better path by Bootstrap. It leveled the playing field in HTML/CSS development, much like Apple's Human Interface Guidelines did for iOS apps.
This talk shows you how to use JHipster to build a Spring Boot API, an Angular UI, and make it all look good with Bootstrap. You'll learn how to deploy the generated project to Heroku too!
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
Get Hip with JHipster - GIDS 2019
1. Matt Raible | @mraible
Get Hip with JHipster
April 22, 2019
Photo by Alyssa Black https://www.flickr.com/photos/alyssablack/12185839253
2. Blogger on raibledesigns.com and
developer.okta.com/blog
Web Developer and Java Champion
Father, Skier, Mountain Biker,
Whitewater Rafter
Open Source Developer + User
Who is Matt Raible?
Bus Lover
Okta Developer Advocate
3.
4.
5.
6. public class Okta {
public Okta(DeveloperDNA developerDna) {
DeveloperRelations devRel = developerDna.getDeveloperRelations();
Assert.notNull(devRel,"Developer Relations is required to operate effectively.");
Set<Developer> team = devRel.getTeam();
Assert.isTrue(!team.isEmpty(),"Team cannot be empty.");
Assert.isTrue(!devRel.getSdks().isEmpty(), "SDKs required for developers.");
}
}
8. 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? TypeScript?
10. Java 8
Parallel Collections
JSR 310 Date and Time API
Functional Interfaces with default method
Lambda Expressions (a.k.a. Closures)
Nashorn JavaScript Engine
11. Java 11
New String Methods
File Utility Methods
Local Variable Syntax: var
Java EE and CORBA modules removed
What about Java 12?
12. Hipster
n. noun
1. One who is exceptionally aware of or interested in the latest trends
and tastes.
13. Latest trends in JavaLand?
Microservices
Embedded App Servers
Deployment with Containers
Environments: dev, test, production
Auto-Configuration
Monitoring
14. 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
16. @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> {
}
17. @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>
18. Microservices with Spring Boot
https://developer.okta.com/blog/2017/06/15/build-microservices-architecture-spring-boot
19. Latest trends in Web Development?
Progressive Web Applications
JavaScript MVC Frameworks
CSS 3 with Animations
Mobile First
Front-End Optimization
REST and GraphQL APIs
33. How to use JHipster
To install JHipster and Yeoman, use npm:
npm install -g generator-jhipster
Then create a directory and cd into it:
mkdir myapp && cd myapp
Then run JHipster:
jhipster
34. Demo Time!
Generate a basic blog application
Look at its files and configuration
Generate the CRUD entities
Limit blogs to current user, allow HTML
Deploy to … all in 20 minutes!
42. The JHipster Mini-Book
Written with Asciidoctor
Quick and to the point, 164 pages
Developed a Real World App:
www.21-points.com
Free Download from
infoq.com/minibooks/jhipster-mini-book
43. Lines of Code in 21-Points
0
6500
13000
19500
26000
Project Created Entities Generated Business Logic and UI
25,670
23,590
16,728
44. Project Creation
Entities Generated
Biz Logic and UI
0 10000 20000 30000
2,999
2,648
1,839
9,472
8,911
5,523
8,383
7,696
5,892
Java TypeScript HTML
Lines of Code by Language