Home
- Home
- Blog
Author :
Global TechHub
Introduction
Spring Boot makes it easy to create
stand-alone, production-grade Spring-based Applications that you can run. We
take an opinionated view of the Spring platform and third-party libraries, so
that you can get started with minimum fuss. Most Spring Boot applications need
very little Spring configuration.
You can use Spring Boot to create
Java applications that can be started by using java -jar or more traditional
war deployments.
The Spring team decided they wanted
to provide developers with some utilities which relatively automate the
configuration procedures and speeds up the process of building and deploying
Spring applications, so they invented Spring Boot.
Spring Boot is a utility project
which aims to make it easy to build Spring-based, production-ready applications
and services with minimum fuss. It provides the shortest way to get a Spring
web application up and running with the smallest line of code/configuration
out-of-the-box.
Overview
Spring Boot Features
There are a bunch of features
specific to Spring Boot, but three of my favorites are dependency management,
auto-configuration, and embedded servlet containers.
Dependency Management
In order to speed up the dependency
management process, Spring Boot implicitly packages the required compatible
third-party dependencies for each type of Spring application and exposes them
to the developer using starters.
Starters are a set of
convenient dependency descriptors that you can include in your application. You
get a one-stop-shop for all the Spring and related technology that you need,
without having to hunt through sample code and copy paste loads of dependency
descriptors.
For example, if you want to get
started using Spring and JPA for database access, just include the spring-boot-starter-data-jpa dependency
in your project, and you are good to go (no need to hunt for compatible database
drivers and Hibernate libraries).
Also, if you want to create a Spring
web application, just add spring-boot-starter-web
dependency, and, by default, this will pull all the commonly used libraries for
developing Spring MVC applications such as spring-webmvc, jackson-json,
validation-api, and Tomcat.
In other words, Spring Boot gathers
all the common dependencies and defines them in one place and allows the
developer to use them instead of reinventing the wheel each time they create a
new application.
Therefore, pom.xml becomes much
smaller than the one used with traditional Spring applications.
Auto Configuration
The second awesome feature of Spring
Boot is the auto-configuration.
After you select the appropriate
starter, Spring Boot attempts to automatically configure your Spring
application based on the jar dependencies that you have added.
For example, if you add spring-boot-starter-web, Spring Boot
automatically configures the commonly registered beans like DispatcherServlet,
ResourceHandlers, MessageSource.
Also, if you’re using spring-boot-starter-jdbc, Spring Boot
automatically registers the DataSource, EntityManagerFactory, and
TransactionManager beans and reads the connection details from the
application.properties file.
In case you don't intend to use a
database and you don't provide any manual connection details, Spring Boot will
auto-configure an in-memory database without any further configuration on your
part whenever it finds an H2 or HSQL library on the build path.
This is totally configurable and can
be overridden anytime by custom configuration.
Embedded Servlet Container Support
Each Spring Boot web application
includes an embedded web server by default, check this for the list of embedded
servlet containers supported out of the box.
Developers don’t need to worry about
setting up a servlet container and deploying the application on it. The
application can be run by itself as a runnable jar file using its embedded
server.
If you need to use a separate HTTP
server, you just need to exclude the default dependencies, Spring Boot provides
separate starters for HTTP servers to help make this process as easy as
possible.
Creating standalone web applications
with embedded servers is not only convenient for development but also a
legitimate solution for enterprise-level applications, and is increasingly
useful in the microservices world. Being able to wrap an entire service (for
example, user authentication) in a standalone and fully-deployable artifact
that exposes an API makes distribution and deployment much quicker and easier
to manage.
Spring Boot Components
Spring Boot Auto Configure
Module to auto configure a wide range
of Spring projects. It will detect availability of certain frameworks (Spring
Batch, Spring Data JPA, Hibernate, JDBC). When detected it will try to auto
configure that framework with some sensible defaults, which in general can be
overridden by configuration in an application.properties/yml file.
Spring Boot Core
The base for other modules, but it
also provides some functionality that can be used on its own, eg. using command
line arguments and YAML files as Spring Environment property sources and
automatically binding environment properties to Spring bean properties (with
validation).
Spring Boot CLI
A command line interface, based on
ruby, to start/stop spring boot created applications.
Spring Boot Actuator
This project, when added, will enable
certain enterprise features (Security, Metrics, Default Error pages) to your
application. As the auto configure module it uses auto detection to detect
certain frameworks/features of your application.For an example, you can see all
the REST Services defined in a web application using Actuator.
Spring Boot Starters
Different quick start projects to
include as a dependency in your maven or gradle build file. It will have the
needed dependencies for that type of application. Currently there are many
starter projects (We will learn about few of them in the next section) and many
more are expected to be added.
Spring Boot Tools
The Maven and Gradle build tool as
well as the custom Spring Boot Loader (used in the single executable jar/war)
is included in this project.
Conclusion
In this article provided you an
introduction to Spring Boot. This should get you started with Spring Boot, I
will have more articles posted on Spring Boot and samples.
Download
S. No
|
File Name
|
Size
|
Download
|
1
|
Introduction
to Spring Boot
|
1.0 MB
|
Comments
Post a Comment