Why Spring Boot?

Spring Boot is a framework that bootstraps a Java web application without the XML configuration headaches that come with a typical Spring application. The framework adopts an opinionated approach to configuration by making decisions based on the use cases that fit the majority of modern web apps. In other words, it follows the philosophy of convention over configuration.

With Spring Boot, we can create an application that bundles all dependencies and it's servlet container so it doesn't even require a traditional WAR deployment. We'll have a fat executable JAR that can be run as a standard Linux service.

SeatingNow

Let's imagine we're developing a restaurant reservation application called SeatingNow to compete with OpenTable. Users can create an account, search for restaurants, book a reservation, and receive notifications via SMS or e-mail.

The application consists of the following microservices:

Account

Search

Restaurant

Reservation

Search

Messaging

Each of these microservices has a REST API and its own MySQL database. The services will be accessed by desktop and mobile users via an API gateway.

In this article, we'll focus on building the API for the Restaurant microservice.