Spring Boot Concepts
Internal
Spring Project Structure
Autoconfiguration
With autoconfiguration, Spring Boot can make reasonable guesses of what components need to be configured and wired together based on the classpath content, environment variables and other factors.
Also see Spring Framework's Spring Framework autoconfiguration.
Developer Tools (DevTools)
Additional set of tools that come as part of Spring Boot, and which can make, according to the documentation, "development experience a little more pleasant". The artifacts are identified as org.springframework.boot:spring-boot-devtools. They include the following development-time features:
- ?
- ?
- ?
Development tools are disabled when running as a fully packaged application (such as with java -jar). They should be declared optional in Maven or "compileOnly" in Gradle.
Configuration Processor
Caching
Spring Boot automatically configures a suitable cache manager to serve as provider for the relevant cache.
TODO: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-caching.html. Also see Spring Framework Cache Abstraction.
Spring Boot Starter Dependency
What is a SpringBoot starter?
'spring-boot-starter' is included in all other starters.
How do I see what's in a starter?
Examples:
org.springframework.boot:spring-boot-starter org.springframework.boot:spring-boot-starter-test
IntelliJ Support
Testing
Process: https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4
Testing Logging Configuration
By default, test logging is executed by Logback.
Actuator
Spring Boot CLI
Spring Boot Main Class
The Spring Boot main class, bootstraps the project. It lives under src/main/java.