Skip to main content

Spring Boot Application Annotation

@SpringBootApplication is an annotation composition that is meta-annotated with several annotations.

@SpringBootApplication

We use this annotation to mark the main class of a Spring Boot application:

/* ... */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class)
})
public @interface SpringBootApplication {
/* ... */
}
@SpringBootApplication
class VehicleFactoryApplication {

public static void main(String[] args) {
SpringApplication.run(VehicleFactoryApplication.class, args);
}
}
tip

@SpringBootApplication encapsulates @Configuration, @EnableAutoConfiguration, and @ComponentScan annotations with their default attributes.

Spring Boot Application Annotation