Use @SpringBootApplication instead of @Configuration + @EnableAutoConfiguration + @ComponentScan
ID |
java.spring_use_springbootapplication |
Severity |
low |
Remediation Complexity |
trivial |
Remediation Risk |
low |
Remediation Effort |
low |
Resource |
Best Practice |
Language |
Java |
Tags |
best-practice, code-style, spring |
Description
Reports classes annotated with the combination of @Configuration, @EnableAutoConfiguration, and @ComponentScan. This trio is exactly what @SpringBootApplication encapsulates.
Rationale
@SpringBootApplication is a meta-annotation equivalent to @Configuration + @EnableAutoConfiguration + @ComponentScan. Using the three annotations separately adds unnecessary verbosity and deviates from the idiomatic Spring Boot convention.
// Bad - verbose, non-idiomatic
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application { ... }
Remediation
Replace the three annotations with @SpringBootApplication.
// Good - idiomatic Spring Boot entry point
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}