Spring Boot Extension is Spring's convention-over-configuration solution for creating production-grade Spring applications with minimal amounts of configuration. Most of the application can be preconfigured using Spring team's "opinionated view" of the best configuration and use of the Spring platform and third-party libraries. A Spring Boot application can be written using several programming languages, including Java and Kotlin.

Features

 Embedded Tomcat, Jetty or UnderTow web application server 
 Provide opinionated 'starter' Project Object Models (POMs) for the build tool. The only build tools supported are Maven and Gradle.
 Automatic configuration of the Spring Application 
 Provide production-ready functionality such as metrics, health checks  and externalized configuration
 No code generation is required. 
 No XML configuration is required.

Bootstrapping DispatcherServlet

Spring Boot does not require manual configuration of the , since it automatically configures the application based on the configuration it detects.

SpringBootServletInitializer
Spring Boot has a class , which is a specialization of the . This  is an out-of-the-box implementation of , which eliminates the need for the developer to construct their own implementation of the  class.

Configuration properties
The configuration properties for the Spring Boot application can be specified in the  or  file.
Examples of properties that can be included in this file include the server.port and spring.application.name properties.

Autoconfiguration

@SpringBootApplication
Spring boot has an annotation, , which allows the Spring Boot application to autoconfigure third-party libraries and detected features found on the classpath. As an example, the class that has the  annotation can extend the  class if the application is packaged and deployed as a WAR file.

The  annotation combines three Spring-specific annotations: ,  and .

@SpringBootConfiguration
The  annotation is a specialization of the Spring-specific  annotation. The class with the  is marked as the configuration class for the Spring Boot application.

@EnableAutoConfiguration
The  annotation is Spring-specific annotation that enables the Spring Boot automatic configuration.

Actuator 

The Spring Boot Actuator allows for monitoring and management capabilities for the Spring Boot Application. A major advantage of using the Spring Boot Actuator is it implements a number of production-ready features without requiring the developer to construct their own implementations.

If Maven is used as the build tool, then the  dependency can be specified in the pom.xml configuration file.

Integration with Spring Framework Modules 
Spring Boot has a number of existing Spring Framework Modules.

Spring Security 

Spring Boot has integration with the Spring Security Module. The simplest way for integrating Spring Boot with Spring Security is to declare the starter dependency in the build configuration file.

If Maven is used as the build tool, then the dependency with artifact ID   dependency can be specified in the pom.xml configuration file.

Application Servers 
By default, Spring boot provides embedded web servers (such as TomCat) out-of-the-box. However, Spring Boot can also be deployed as a WAR file on a standalone WildFly application server.

If Maven is used as the build tool, there is a  Maven plugin that allows for automatic deployment of the generated WAR file.

Citations

References

External links

 

Aspect-oriented programming
Java enterprise platform
Web frameworks