Getting Hip with
JUG Ostfalen, 24th Oct. 2019
Frederik Hahne
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6620689/JHipster_RGB.png)
About me
Frederik Hahne
@atomfrede
atomfrede.gitlab.io
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/3561218/wescale-logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/3561191/jug-pb-duke-small.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/5264271/logo-alternate-drinking-coffee.png)
About me
- JHipster Core Team Member since 2015
- Gradle Stream Lead, Vue Maintainer
- JUG Paderborn Organizer
- Software Developer at wescale
Disclaimer:
I am a Noob
Greetings, Java Hipsters
Intro
Overview
Demo
How long does it take to setup a modern web application?
How long does it take to configure databases, security, api?
How long does it take to go to production?
What is JHipster?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/5264266/1_O68LbDvD5Dcsnez73M7v4Q.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/5264268/angular-icon.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/5264270/react.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/5264269/bootstrap-stack.png)
+
/
_
=
What is JHipster?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/5264266/1_O68LbDvD5Dcsnez73M7v4Q.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/5264269/bootstrap-stack.png)
+
_
=
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/3178582/vue-logo.png)
What is JHipster
- Full Stack Application Development Platform
- 100% Open Source
- Best Practices & High Quality Code
- Community & Knowledge
JHipster in Numbers
- 14k+ Stars
- 33 Core Team Member
- 520+ Contributors
- 2 Java Champions
- 2 Books
- 1000000+ Installations
- 2 Conferences
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/5270560/Screenshot_2018-09-18_JHipster_auf_Twitter__For_the_first_time__we_are_the__1_yeoman_generator_https_t_co_ntyc0xVhIv_Who_wo_..._.png)
Goals
A high-performance and robust Java stack on the server side with Spring Boot
A sleek, modern, mobile-first front-end with Angular, React and Bootstrap
A powerful workflow to build your application with Yeoman, Webpack and Maven/Gradle
Policies
technologies used by JHipster have their default configuration used as much as possible
only add options when there is sufficient added-value in the generated code
for the Java code, follow the default Intellij IDEA coding style
use strict versions for third-party libraries
Formatting...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6653373/icon.png)
https://github.com/jhipster/prettier-java
JHipster Users
Supporters
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6653394/okta.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6653395/XebiaLabs.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6653396/Logo_IPPON-Rouge.jpg)
Options
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6653408/Screenshot_2019-10-14_Generate_a_full_stack_Java___Angular_React_application_in_a_few_steps_1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6653426/Screenshot_2019-10-14_Generate_a_full_stack_Java___Angular_React_application_in_a_few_steps.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6653433/Screenshot_2019-10-14_Generate_a_full_stack_Java___Angular_React_application_in_a_few_steps_2_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6653435/Screenshot_2019-10-14_Generate_a_full_stack_Java___Angular_React_application_in_a_few_steps_3_.png)
Let's Code
// Installed node, java and git (optional)
npm install -g generator-jhipster
npm install -g generator-jhipster-vuejs
jhipster --blueprints vuejs
Gettin' Started
Demo
- Generate a basic library management application
- Short Worktrough
- Generate CRUD entities
- Small adaption to the code
- Build with Gitlab CI
- Deploy to Heroku
- Inspired by Matt Raible's introduction
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/5269444/17892.jpg)
The real java hipster
![](https://s3.amazonaws.com/media-p.slid.es/uploads/89888/images/6686842/jhipster-jdl.png)
Side-by-Side Approach
@SuppressWarnings("unused")
@Repository
public interface BorrowRepository extends JpaRepository<Borrow, Long> {
}
@SuppressWarnings("unused")
@Repository
public interface BorrowRepositoryCustom extends BorrowRepository {
}
Side-by-Side Approach
import BookCopyService from "@/entities/book-copy/book-copy.service";
export default class BookCopyServiceCustom extends BookCopyService {
}
https://www.slideshare.net/agoncal/custom-and-generated-code-side-by-side-with-jhipster
https://dev.to/antonioortizpola/separating-the-jhipster-layout-from-a-custom-ui-implementation-55i8
Going to Production
- Start with less
- Don't touch generated code
- Keep JDL up to date
- Use same DB in Dev & Prod
- Integrate testcontainers
- Use DTO & Services
- Most likely you will add a custom web api
https://atomfrede.gitlab.io/2019/05/jhipster-with-testcontainers/
https://github.com/intesys/generator-jhipster-testcontainers
start.jhipster.tech
create application via jdl
What else?
- Kotlin Blueprint
- Node Blueprint
- .net Blueprint
- Quarkus/Micronaut Blueprint
- Spring Boot 2.2
- Neo4J Support
- Modulith
- Micro Frontends
https://github.com/odrotbohm/moduliths
https://github.com/jhipster/generator-jhipster/issues/9967
- jhipster.tech
- github.com/jhipster
- twitter.com/jhipster
- https://stackoverflow.com/tags/jhipster/info
- https://gitter.im/jhipster/generator-jhipster
- jhipster-book.com
- packtpub.com/application-development/full-stack-development-jhipster
jhipster.tech/bug-bounties
![](https://media0.giphy.com/media/xTiTnqUxyWbsAXq7Ju/giphy.gif)
Question?
Question?
Getting Hip with JHipster
By atomfrede
Getting Hip with JHipster
Slides for my Talk at JUG Ostfalen Oct. 2019
- 1,293