Spring Boot

Shehani Wijetunga
5 min readJun 1, 2021

What is Spring Boot?

Spring Boot is a good platform for Java developers to create a stand-alone, production-ready spring application that can be run straightly. You may get started with just a few configs without having to set up a full Spring configuration.


  • Web Development
  • Type-safe Configuration
  • SpringApplication
  • Properties Files
  • YAML Support
  • Application events and listeners
  • Security
  • Admin features
  • Externalized Configuration
  • Logging

Spring Boot Architecture

Spring Boot is a Spring Framework module. It is used to quickly construct stand-alone, production-ready Spring Based Applications. It’s built on top of the Spring Framework’s foundation.

Spring Boot has a layered architecture, which means that each layer communicates with the layer below or above it (hierarchical structure).

Before we can comprehend the Spring Boot Architecture, we must first comprehend the various layers and classes that make it up. Spring Boot has four layers, which are as follows:

  • Presentation Layer
  • Business Layer
  • Persistence Layer
  • Database Layer

Spring Boot Flow Architecture

Validator classes, view classes, and utility classes are now available.

Spring Boot makes advantage of all of the Spring-like Spring MVC, Spring Data, and other modules.

The design of Spring Boot is similar to that of Spring MVC, with the exception that DAO and DAOImpl classes are not required in Spring Boot.

Creates a data access layer and executes CRUD operations on it.

The HTTP requests are made by the client (PUT or GET).

The request is routed to the controller, which maps and processes the request.

If necessary, it then invokes the service logic.

All business logic takes place in the service layer.

It executes logic on data that has been mapped to JPA using model classes.


The following are some of the benefits that Spring Boot provides to its developers:

  1. Spring apps are simple to comprehend and construct.
  2. Boosts productivity
  3. Reduces the time it takes to develop


Spring Boot was created with the following objectives in mind:

  1. To avoid having to deal with a lot of XML configuration in Spring
  2. To make it easier to create production-ready Spring apps
  3. To shorten the development time and make the application self-contained
  4. Provide a simpler way to get started with the program

Why Spring Boot?

Spring Boot is a good option because of the characteristics and benefits it provides, which are listed below.

  1. It allows you to configure Java Beans, XML settings, and Database Transactions in a customizable fashion.

2. It maintains REST endpoints and offers robust batch processing.

3. Everything is auto-configured in Spring Boot; no human configuration is required.

4. It has a spring application that is annotation-based.

5. Management of dependencies is made easier.


To construct a Spring Boot application, your system must meet the following minimal requirements:

  • Maven
  • Gradle
  • Java

Spring Boot CLI

The Spring Boot CLI is a command-line tool and it allows us to run the Groovy scripts. This is the easiest way to create a Spring Boot application by using the Spring Boot Command Line Interface. You can create, run and test the application in the command prompt itself.

Initializer for Spring

Spring Initializer is one of the methods for Bootstrapping a Spring Boot application.

To do so, go to the Spring Initializer website at www.start.spring.io and select your Build, Spring Boot Version, and platform.

To start the application, you must also provide a Group, an Artifact, and any required dependencies.

Click the Generate Project button after you’ve filled out the Group, Artifact, Dependencies, Build Project, Platform, and Version fields.

The files will be extracted from the zip file that has been downloaded.

Main Method

Writing the Spring Boot Application class should be the primary method. @SpringBootApplication should be added to this class. The spring boot application will start at this point. The main class file with the default package can be found in the src/java/main directory.

Write a Rest Endpoint

Follow the steps below to create a simple Hello World Rest Endpoint in the Spring Boot Application main class file.

  1. To begin, add the @RestController annotation to the class’s top.

2. Now, use the @RequestMapping annotation to create a Request URI method.

3. The Hello World string should then be returned by the Request URI function.

Create an Executable JAR

Using the Maven and Gradle tools on the command prompt, we can generate an executable JAR file to launch the Spring Boot application.

  1. Use the Maven command mvn clean install.

2. The BUILD SUCCESS message appears at the command prompt after you run the command.

3. Use the Gradle command gradle clean build.

4. The BUILD SUCCESSFUL message appears at the command prompt after you run the command.

Management of Dependencies

The Spring Boot team publishes a list of requirements for each release of the Spring Boot framework. In the build configuration file, you do not need to declare a version for dependencies. The version of the dependencies is automatically configured by Spring Boot based on the release. Keep in mind that when you upgrade the Spring Boot version, all dependencies will be upgraded as well.

Maven Dependency

To manage the Spring Boot Starters dependencies, we should inherit the Spring Boot Starter parent project for the Maven setup. We can just inherit the beginning parent in our pom.xml file to do this.

For the Spring Boot Parent Starter dependency, we need to mention the version number. We don’t need to give the Spring Boot version number for other starting dependencies.

Gradle Dependency

The Spring Boot Starters dependencies can be imported directly into the build.gradle file. We don’t need a Maven dependency for Spring Boot start Parent as we need for Gradle.

In the same way, we don’t need to specify the Spring Boot version number for dependencies in Gradle. Spring Boot configures the dependency automatically based on the version.

Default Package

A default package is defined as a class that does not have a package declaration. It’s worth noting that a default package declaration isn’t always a good idea. When you utilize the default package, Spring Boot will cause issues such as Auto Configuration or Component Scan to fail.

Spring Beans and Dependency Injection

We can utilize Spring Framework to define our beans and their dependency injection in Spring Boot. To find beans, the @ComponentScan annotation is used, and the matching @AutoWired annotation is injected.

There is no need to supply any arguments for the @ComponentScan annotation if you used the Spring Boot standard structure. Spring Beans automatically registers all component class files.

Spring Boot — Runners

After the Spring Boot application has been started, you can use the ‘Application Runner’ and ‘Command Line Runner’ interfaces to run code. After the application has launched, you can utilize these APIs to conduct any tasks.

Application Runner is an interface used to execute the code after the Spring Boot application started.

Command Line Runner is an interface. It is used to execute the code after the Spring Boot application started.

This blog will give you a brief explanation of Spring Boot. I hope you’ll get a good idea from this blog.