Spring Boot
September 9, 2021

M04 Q17 What does @EnableAutoConfiguration do?

@EnableAutoConfiguration annotation turns on auto-configuration of Spring Context. Auto-configuration tries to guess Spring Beans that should be created for your application based on configured dependencies and configurations with @ConditionalOn... annotations.

When auto-configuration is turned on, Spring will search for META-INF/spring.factories on classpath, whenever entry org.springframework.boot.autoconfigure.EnableAutoConfiguration is encountered in this file, Auto Configuration Class pointed by this property is loaded. When condition present in @ConditionalOn... annotation is matched, beans pointed out by this configuration are created.

@EnableAutoConfiguration annotation should be applied to your application @Configuration class, when using Spring Boot with @SpringBootApplication annotation, @EnableAutoConfiguration annotation is not required because auto-configuration is turned on by default.