Ant Support
Build with Apache Ant+Ivy using the spring-boot-antlib module.
Auto-configuration
Automatically configures Spring applications.
Auto-configuration packages
Packages auto-configured features scan by default for entities and Spring Data repositories.
@AutoConfigurationPackage annotation
Configures additional auto-configuration packages beyond the default.
@Autowired Annotation
Marks the constructor Spring should use when a bean has multiple constructors.
Build systems
Guidance on using Spring Boot with build systems.
@ComponentScan
Enables component scanning on the package where the application is located.
Condition Evaluation Logging
Logging changes in condition evaluation is supported.
Constructor Injection
Recommended way to wire up dependencies, allowing fields to be marked final.
Debug conditions report
Starting with --debug logs a conditions report showing applied auto-configuration.
Avoid the default package
Use of the default package is discouraged as it reads every class from every jar.
Developing Your First Spring Boot Application
Developing with Spring Boot
DevTools quick restart
The spring-boot-devtools module supports quick application restarts.
@EnableAutoConfiguration annotation
Opt-in annotation that enables auto-configuration on a @Configuration class.
@EnableAutoConfiguration
Enables Spring Boot's auto-configuration mechanism.
Exclude auto-configuration classes
Use exclude or excludeName attributes, or the spring.autoconfigure.exclude property.
Gradle bootRun task
gradle bootRun runs the application in exploded form.
Gradle Plugin
Plugin for using Spring Boot with Gradle.
@Import Annotation
The @Import annotation imports additional configuration classes.
@ImportResource
@ImportResource loads XML configuration files from a @Configuration class.
Java-based Configuration
Spring Boot favors Java-based configuration over XML sources.
java -jar execution
Applications can be started by using java -jar.
Maven Plugin
Plugin for using Spring Boot with Maven.
Maven run goal
mvn spring-boot:run compiles and runs the application in exploded form.
No code generation
Absolutely no code generation when not targeting native image.
No XML configuration
No requirement for XML configuration.
Production Packaging
Package and optimize Spring Boot applications for production deployment.
Restart Classloader
Restart uses two classloaders; the restart classloader can be customized.
Root package layout
Recommended to locate the main application class in a root package above other classes.
Run from an IDE
Import the project and run it as a Java application without special plugins.
Run as packaged application
Run the executable jar with java -jar, optionally with remote debugging.
Running applications
Covers how to run your Spring Boot applications.
@SpringBootApplication annotation
Single annotation that includes @EnableAutoConfiguration; only one should be added.
spring-boot-devtools Module
Optional module adding development-time features such as restart and LiveReload.
Spring Framework Documentation
@SpringBootApplication annotation
Placed on the main class, it implicitly defines a base search package and imports @EnableAutoConfiguration and @ComponentScan.
@SpringBootConfiguration
Enables registration of extra beans or import of additional configuration classes.
Stand-alone Java applications
Create Java applications started with java -jar.
Starters
Convenient dependency descriptors with managed transitive dependencies.
Trigger File
Restart can be controlled by a trigger file.
War deployment
Applications can be deployed as traditional war files.
WAR deployments
Traditional war deployments are supported.