What is Spring Boot

Spring Boot is a Java Based framework used to create web based and Rest Based applications, It is open source, popular framework for creating enterprise level applications, it can be used to create standalone and production-grade applications.

Java Spring boot also allows us to create microservices easier, with less focus on configuration, and more on business logic and internal implementation of the application, it has below mentioned capabilities:

1. Auto-Configuration

2. Support for creation of standalone application

 

Popularity of Spring Boot:

Spring Boot offers a lot of features that makes a developer life much easier, that includes Autoconfiguration, dependency Injection and built in support for type conversion, internalization, exception handling etc.

most loved feature of spring boot is dependency injection which literally helped in getting rid of the pain of writing a lot of configurations, specially in case of microservices. dependency injection offers injection of objects whereever its required with the help of spring container, spring container creates a instance of objects at runtime and dependeding upon the scope of dependency, it gets automatically injecteed at the place where is requred, thus make process of creating modular applications easy and helps us acheiving losely couples components.

 

What Spring Boot enhances capability of spring framework

Spring framework is equally great and powerful but it still needed some time to set-up , configure and deploy spring applications, spring boot eradicates these issues and provides a developer friendly environment, where developers can focus on writing quality code and focuses less on setting up applications and configuring them according to project compliance.

Spring Boot features that helps us achieve these issues:

1. Autoconfiguration

Autoconfiguration means that applications are initiated with already set dependencies that we don't have to configure manually, As Spring boot allows us to autoconfigure dependencies, it automatically configures the spring framework and any third party packages based on certain best practices. Though these defaults can be overriden once the initiation is done.

2. Opinionated Approach

Spring Boot allows opinionataed approach to add and configure starter dependency, based on the project requirements, spring boot uses its own pre - defined judgements that helps it to choose which package to install rather than to let developer do it manually all the time.

A developer only needs to define the needs of the project, using multiple starter dependency and spring boot will automatically install the dependency which are requrired to run those defined dependencies smoothly.

For instance, spring-boot-starter-web dependency allows to develop spring based we application with minimum confugration by adding neccessary dependency like tomcat, etc

3. Standalone Applications

Spring boot allows developers to create applications and deploy them on any platform with relying on any external web server  by embedding a Tomcat server in place, though one can opt out of this feature as well.