Multiple @EnableAutoConfiguration annotations
ID |
java.spring_enable_autoconfiguration_unique |
Severity |
high |
Remediation Complexity |
trivial |
Remediation Risk |
low |
Remediation Effort |
low |
Resource |
Reliability |
Language |
Java |
Tags |
best-practice, reliability, spring |
Description
Reports when multiple classes in the same compilation unit are annotated with @EnableAutoConfiguration.
Rationale
Spring Boot’s auto-configuration mechanism is designed to be activated once per application context. Having multiple @EnableAutoConfiguration entry points causes unpredictable bean registration order, potential duplicate bean definitions, and startup failures that are difficult to diagnose.
// Bad - two auto-configuration entry points
@EnableAutoConfiguration
public class AppConfig { ... }
@EnableAutoConfiguration
public class WebConfig { ... }
Remediation
Keep a single @EnableAutoConfiguration (or @SpringBootApplication) in the application. Remove the duplicate annotation from other configuration classes.
// Good - single entry point
@SpringBootApplication
public class AppConfig { ... }
@Configuration
public class WebConfig { ... }