Full Stack Development with JHipster - Second Edition

By Deepu K Sasidharan , Sendil Kumar Nellaiyapen
    What do you get with a Packt Subscription?

  • Instant access to this title and 7,500+ eBooks & Videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Free Chapter
    Introduction to Modern Web Application Development
About this book
JHipster is an open source development platform that allows you to easily create web apps and microservices from scratch without spending time on wiring and integrating different technologies. Updated to include JHipster 6, Java 11, Spring Boot 2.1, Vue.js, and Istio, this second edition of Full Stack Development with JHipster will help you build full stack applications and microservices seamlessly. You'll start by understanding JHipster and its associated tools, along with the essentials of full stack development, before building a monolithic web app. You'll then learn the JHipster Domain Language (JDL) with entity modeling using JDL-Studio. With this book, you'll create production-ready web apps using Spring Boot, Spring Framework, Angular, and Bootstrap, and run tests and set up continuous integration pipelines with Jenkins. As you advance, you'll learn how to convert your monoliths to microservices and how to package your application for production with various deployment options, including Heroku and Google Cloud. You'll also learn about Docker and Kubernetes, along with an introduction to the Istio service mesh. Finally, you'll build your client-side with React and Vue.js and discover JHipster's best practices. By the end of the book, you'll be able to leverage the best tools available to build modern web apps.
Publication date:
January 2020


Introduction to Modern Web Application Development

According to the Stack Overflow developer survey 2019 (https://insights.stackoverflow.com/survey/2019#developer-roles), full stack developer is the most popular developer title. The software industry defines a full stack developer as someone who can work on different areas of an application stack. The term stack refers to the different components and tools that make up an application.

In terms of web application development, the stack can be broadly classified into two areas—frontend and backend stack, also known as the client-side and server-side stack. The term frontend generally refers to the part of the code that is responsible for the user interface, and the term backend refers to the part that is responsible for the business logic, database interactions, user authentication, server configuration, and so on. There...


Modern full stack web development

The life of a full stack developer would be worthy of a whole book by itself, so let's leave that topic for another day.

Instead, let's look at a user story from a full stack Java web application and see what is involved.

Let's use an example of developing a user management module for a typical Java web application. Let's assume that you would be writing unit test cases for all of the code, and so we won't look at it in detail here:

  1. You would start by designing the architecture for the feature. You would decide on the plugins and frameworks to use, patterns to follow, and so on.
  2. You will be modeling the domain model for the feature depending on the database technology used.
  3. Then, you would create server-side code and database queries to persist and fetch data from the database.
  4. Once the data is ready, you would implement...

Web architecture patterns

The full stack landscape is further complicated by the different web architecture patterns commonly used these days. The widely used web application architecture patterns today can be broadly classified into two patterns—monolithic architecture and microservice architecture, the latter of which has become mainstream (fashionable) in recent years.

Monolithic web architecture

A monolithic architecture is the most widely used pattern for web applications because of its simplicity to develop and deploy. Though the actual moving parts will differ from application to application, the general pattern remains the same. In general, a monolithic web application can do the following:

  • It can support different...

Choosing the right pattern

When starting a new project these days, it is always difficult to choose an architecture pattern. There are so many factors to take into account, and it is easy to get confused with all the hype surrounding different patterns and technologies (see the blog post on Hype Driven Development (HDD)) at https://blog.daftcode.pl/hype-driven-development-3469fc2e9b22). The following are some general guidelines on when to choose a monolithic web application architecture over a microservice architecture and vice versa.

When to choose a monolithic architecture

The following list can be used as a general guide when choosing a monolithic architecture. This is not a definitive list, but it gives you an idea of...



So far, we've learned what full stack development is and compared two of the most prominent architecture patterns. We also learned about the advantages and disadvantages of monolithic and microservice architecture, which helps us to choose the right pattern for our use case.

In the next chapter, we will take a deep dive into the JHipster platform and look at all the options it provides. We will also learn how to install JHipster and set up our tools and development environment.

About the Authors
  • Deepu K Sasidharan

    Deepu K Sasidharan is the co-lead of JHipster. He has been part of the core JHipster team since its inception and is an active contributor to the project. He currently works for XebiaLabs, a DevOps software company, as a senior polyglot product developer. Prior to that, he worked at TCS as a technical consultant focusing on innovative solutions for airlines. He has over 10 years of experience in the architecture, design, and implementation of enterprise web applications, and pre-sales. He is also a Java, JavaScript, web technology, and DevOps expert. When not coding, he likes to read about astronomy and science.

    Browse publications by this author
  • Sendil Kumar Nellaiyapen

    Sendil Kumar Nellaiyapen is an engineering manager building web payments at Uber. He is passionate about the web and cloud technologies. He has over 12 years of experience in building distributed, cloud-native, and enterprise systems. He occasionally rambles on his website and speaks at various conferences. He is an active open source contributor and enjoys building communities. He loves to learn and explore new programming languages.

    Browse publications by this author
Full Stack Development with JHipster - Second Edition
Unlock this book and the full library FREE for 7 days
Start now