Spring Boot

Spring Boot
Original authorRod Johnson
DeveloperVMware
Initial releaseApril 2014; 12 years ago (2014-04)[1]
Stable release
4.0.6[2] Edit this on Wikidata / 23 April 2026; 43 days ago (23 April 2026)
Written inJava
PlatformJakarta EE
TypeApplication framework
LicenseApache License 2.0
Websitespring.io/projects/spring-boot Edit this on Wikidata
Repository

Spring Boot is an open-source Java framework used for programming standalone, production-grade Spring-based applications with a bundle of libraries that make project startup and management easier.[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] The application can still be adjusted for specific needs, but the initial Spring Boot project provides a preconfigured "opinionated view" of the best configuration to use with the Spring platform and selected third-party libraries.[6][7]

Spring Boot can be used to build microservices, web applications, and console applications.[3][8]

Features

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

  1. ^ "Spring Boot v1.0.0.RELEASE". github.com.
  2. ^ "Release 4.0.6". 23 April 2026. Retrieved 24 April 2026.
  3. ^ a b c "Spring Boot Tutorial - Learn Spring Boot". GeeksforGeeks. 2023-05-08. Retrieved 2024-04-05.
  4. ^ a b Walls 2016, p. vii, §foreword.
  5. ^ Walls 2016, pp. 37–48, §2.3.
  6. ^ Walls 2016, p. 48, §2.4.
  7. ^ Deinum & Cosmina 2021, pp. 21–22, §2 Spring Framework Fundamentals.
  8. ^ "Spring Boot Console Application". Baeldung. 2024-01-08. Retrieved 2024-09-20.
  9. ^ a b Walls 2016, p. 7, §1.1.3.
  10. ^ a b Walls 2016, p. x, §Preface.
  11. ^ Musib 2022, p. 9, §1.2.1 Maven vs Gradle.
  12. ^ Walls 2016, pp. 4–5, §1.1.2.
  13. ^ a b Walls 2016, pp. 124–139, §7.
  14. ^ Walls 2016, pp. 49–69, §3.1-§3.2.3.
  15. ^ "Language Support". Spring Framework.
  16. ^ a b c d e f g Deinum & Cosmina 2021, pp. 52–54, §2 Spring Framework Fundamentals - Spring Boot.
  17. ^ a b c d Walls 2019, pp. 11–17, §1.2.2 Examining the Spring project structure.
  18. ^ a b Musib 2022, pp. 144–145, §4.4 Spring Boot Actuator.
  19. ^ Musib 2022, pp. 145–146, §4.4.1 Configuring Spring Boot Actuator in a Spring Boot application.
  20. ^ a b Musib 2022, pp. 187–192, §5.2.1 Configuring Spring Boot Actuator in a Spring Boot application.
  21. ^ Musib 2022, pp. 7–8, §1.1.4 Spring Boot components.
  22. ^ a b Musib 2022, pp. 406–417, §9.2 Deploying Spring Boot application as WAR in the wildfly application server.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.