Spring Boot
An editor has performed a search and found that sufficient sources exist to establish the subject's notability. (June 2023) |
![]() | |
Original author(s) | Rod Johnson |
---|---|
Developer(s) | VMware |
Initial release | April 2014[1] |
Stable release | 3.3.2[2] ![]() |
Repository | |
Written in | Java |
Platform | Java EE |
Type | Application framework |
License | Apache License 2.0 |
Website | spring![]() |
Spring Boot is an open-source Java framework used for programming standalone, production-grade Spring-based applications with minimal effort.[3] Spring Boot is a convention-over-configuration extension for the Spring Java platform intended to help minimize configuration concerns while creating Spring-based applications.[4][5] Most of the application can be preconfigured using Spring team's "opinionated view"[6][7] of the best configuration and use of the Spring platform and third-party libraries.
It is widely used for building microservices, web applications, and other Java-based projects due to its ease of use and robustness.[citation needed]
Features
- Embedded Tomcat, Jetty or Undertow web application server.[8]
- Provide opinionated 'starter' Project Object Models (POMs) for the build tool. The only build tools supported are Maven and Gradle.[9][10]
- Automatic configuration of the Spring Application.[11]
- Provide production-ready[4] functionality such as metrics,[12] health checks,[12] and externalized configuration.[13]
- No code generation is required.[8]
- No XML configuration is required.[9]
- Optional support for Kotlin and Apache Groovy[14] in addition to Java.[15]
Bootstrapping DispatcherServlet
Spring Boot does not require manual configuration of the DispatcherServlet
, since it automatically configures the application based on the configuration it detects. [16]
SpringBootServletInitializer
Spring Boot has a class SpringBootServletInitializer
, which is a specialization of the WebApplicationInitializer
.[16] This SpringBootServletInitializer
is an out-of-the-box implementation of WebApplicationInitializer
, which eliminates the need for the developer to construct their own implementation of the WebApplicationInitializer
class.[16]
Configuration properties
The configuration properties for the Spring Boot application can be specified in the application.properties
or application.yml
file.[16]
Examples of properties that can be included in this file include the server.port
and spring.application.name
properties.[16]
Autoconfiguration
@SpringBootApplication
Spring boot has an annotation, @SpringBootApplication
, which allows the Spring Boot application to autoconfigure third-party libraries and detected features found on the classpath.[16] As an example, the class that has the @SpringBootApplication
annotation can extend the SpringBootServerInitializer
class if the application is packaged and deployed as a WAR file.[16]
The @SpringBootApplication
annotation combines three Spring-specific annotations: @SpringBootConfiguration
, @EnableAutoConfiguration
and @ComponentScan
.[17]
@SpringBootConfiguration
The @SpringBootConfiguration
annotation is a specialization of the Spring-specific @Configuration
annotation.[17] The class with the @SpringBootConfiguration
is marked as the configuration class for the Spring Boot application.[17]
@EnableAutoConfiguration
The @EnableAutoConfiguration
annotation is Spring-specific annotation that enables the Spring Boot automatic configuration. [17]
Actuator
The Spring Boot Actuator allows for monitoring and management capabilities for the Spring Boot Application.[18] A major advantage of using the Spring Boot Actuator is that it implements a number of production-ready features without requiring the developer to construct their own implementations.[18]
If Maven is used as the build tool, then the spring-boot-starter-actuator
dependency can be specified in the pom.xml
configuration file.[19]
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.[20]
If Maven is used as the build tool, then the dependency with artifact ID spring-boot-starter-security
dependency can be specified in the pom.xml
configuration file.[20]
Application Servers
By default, Spring boot provides embedded web servers (such as TomCat) out-of-the-box.[21] However, Spring Boot can also be deployed as a WAR file on a standalone WildFly application server.[22]
If Maven is used as the build tool, there is a wildfly-maven-plugin
Maven plugin that allows for automatic deployment of the generated WAR file.[22]
References
- ^ "Spring Boot v1.0.0.RELEASE". github.com.
- ^ "Release 3.3.2". 18 July 2024. Retrieved 27 July 2024.
- ^ "Spring Boot Tutorial - Learn Spring Boot". GeeksforGeeks. 2023-05-08. Retrieved 2024-04-05.
- ^ a b Walls 2016, p. vii, §foreword.
- ^ Walls 2016, pp. 37–48, §2.3.
- ^ Walls 2016, p. 48, §2.4.
- ^ Deinum & Cosmina 2021, pp. 21–22, §2 Spring Framework Fundamentals.
- ^ a b Walls 2016, p. 7, §1.1.3.
- ^ a b Walls 2016, p. x, §Preface.
- ^ Musib 2022, p. 9, §1.2.1 Maven vs Gradle.
- ^ Walls 2016, pp. 4–5, §1.1.2.
- ^ a b Walls 2016, pp. 124–139, §7.
- ^ Walls 2016, pp. 49–69, §3.1-§3.2.3.
- ^ "Language Support". Spring Framework.
- ^ Musib 2022, p. 9, §1.2.2 Java vs Kotlin.
- ^ a b c d e f g Deinum & Cosmina 2021, pp. 52–54, §2 Spring Framework Fundamentals - Spring Boot.
- ^ a b c d Walls 2019, pp. 11–17, §1.2.2 Examining the Spring project structure.
- ^ a b Musib 2022, pp. 144–145, §4.4 Spring Boot Actuator.
- ^ Musib 2022, pp. 145–146, §4.4.1 Configuring Spring Boot Actuator in a Spring Boot application.
- ^ a b Musib 2022, pp. 187–192, §5.2.1 Configuring Spring Boot Actuator in a Spring Boot application.
- ^ Musib 2022, pp. 7–8, §1.1.4 Spring Boot components.
- ^ a b Musib 2022, pp. 406–417, §9.2 Deploying Spring Boot application as WAR in the wildfly application server.
- Deinum, Marten; Cosmina, Iuliana (2021). Pro Spring MVC with WebFlux. Berkeley, CA: Apress. doi:10.1007/978-1-4842-5666-4. ISBN 978-1-4842-5665-7. S2CID 231672329.
- Musib, Somnath (July 12, 2022). Spring Boot in Practice. Simon and Schuster. ISBN 978-1-61729-881-3.
- Walls, Craig (Jan 3, 2016). Spring Boot in Action. Manning. ISBN 978-1-61729-254-5.
- Walls, Craig (2019). Spring in Action. Manning. ISBN 978-1-61729-494-5.
External links
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/40px-Wikibooks-logo-en-noslogan.svg.png)