Over the years spring has become more and more complex as new functionalities have been added. Just visit the page-https://spring.io/projects and we will see all the spring projects we can use in our application for different functionalities. If one has to start a new spring project we have to add build path or add maven dependencies, configure application server, add spring configuration . So a lot of effort is required to start a new spring project as we have to currently do everything from scratch. Spring Boot is the solution to this problem. Spring boot has been built on top of existing spring framework. Using spring boot we avoid all the boilerplate code and configurations that we had to do previously. Spring boot thus helps us use the existing Spring functionalities more robustly and with minimum efforts.
Features of Spring boot-
- Auto-Configuration - No need to manually configure dispatcher servlet, static resource mappings, property source loader, message converters etc.
- Dependency Management - The different versions of commonly used libraries are pre-selected and grouped in different starter POMs that we can include in your project. By selecting one Spring Boot version we are implicitly selecting dozens of dependencies that we would have to otherwise select and harmonize ourself. Example-
- Advanced Externalized Configuration - There is a large list of bean properties that can be configured through application.properties file without touching java or xml config.
- Production support- We get health checking, application and jvm metrics, jmx via http and a few more things for free.
- Runnable Jars - We can package your application as a runnable jar with embedded tomcat included so it presents a self-contained deployment unit