Spring Boot is an open-source micro framework maintained by a company called Pivotal. It provides Java developers with a platform to get started with an auto configurable production-grade Spring application. With it, developers can get started quickly without losing time on preparing and configuring their Spring application.
Autoconfiguration: Developers can automatically configure their Spring application. However, Spring Boot is also capable of changing the configuration based on the dependencies you list. For example, when you list “MySQL” as a dependency, it will configure your Spring application with the “MySQL connector” included. And if you want to add a custom configuration, you can create a class that overrides the default configuration for your “MySQL connector”.
Standalone: There’s no need to deploy your application to a web server. You simply enter the run command to start the application.
Opinionated: On the official page, we find that Spring Boot decides for you which defaults to use for the configuration. Also, it decides which packages to install for the dependencies you require. For example, if you include the Spring Boot starter “pom” for “JPA”, it will autoconfigure an in-memory database, a hibernate entity manager, and a simple data source. This is an example of an opinionated default configuration that you can override. While some developers might feel this is too opinionated, Spring Boot’s opinionated setup helps developers to get started quickly on their projects.
Fast and easy development of Spring-based applications;
No need for the deployment of war files;
The ability to create standalone applications;
Helping to directly embed Tomcat, Jetty, or Undertow into an application;
No need for XML configuration;
Reduced amounts of source code;
Additional out-of-the-box functionality;
Simple setup and management;
Large community and many training programs to facilitate the familiarization period.
Lack of control. Spring Boot creates a lot of unused dependencies, resulting in a large deployment file;
The complex and time-consuming process of converting a legacy or an existing Spring project to a Spring Boot application;
Not suitable for large-scale projects. Although it’s great for working with microservices, many developers claim that Spring Boot is not suitable for building monolithic applications.
The Tech Platform