What is Spring Boot?
Spring is a popular Java-based framework for building web and enterprise grade application. spring framework provides various modern features via its various projects.
Spring team created Spring Boot project to create standalone, production-ready spring based executable applications. Most of the spring boot application requires minimal spring configuration.
Why Spring Boot?
In a traditional monolithic approach for developing web/RESTful application, a WAR is created and deployed on a web server like: Tomcat, Jboss, IBM WebSphere etc.
From a microservices point of view, we need to develop services as executable, self-contained JAR files with an embedded HTTP listener.
Spring Boot features:
- Self-Contained web server: We can easily embed HTTP listeners for the web application. We can easily create a self-contained HTTP server using embedded tomcat, jetty etc.
- Standalone application: We can create a standalone executable application. It has SpringApplication class which provides the convenient way to bootstrap a spring application which can be started from the main method just by calling static method SpringApplication.run().
- Externalized configuration: It allows us to externalize the configuration so that we can work with the same application in various environments. We can use YAML files to externalize the configuration.
- YAML Support: It provides support for YAML configuration by default.
- Application Properties: It provides a rich set of application properties, for example: server-port, application-name and many more.
- Actuator: It provides production readiness by actuators such as metrics and health check.
- Type-safe configuration: It also provides a strong type-safe way to handle the configuration by allowing the developer to create a bean and populating it with the property value from a configuration file using annotation.
- Logging: It provides out of the box logging for all internal logging. Logback is provided by default without any additional configuration, which can be altered if needed.
- Security: It provides the feature of enabling the basic security by using the spring boot started security. It enables the basic security by default, which can be further enhanced to utilize the full strength of Spring security.
Getting started with Spring Boot, Create your first REST API application