Member-only story
How to Disable Auto-Configuration in Spring Boot (Step-by-Step Guide)
Learn how to disable specific auto-configurations in Spring Boot using the exclude
attribute and @EnableAutoConfiguration
. Includes real-world examples and best practices.
🔍 What Is Auto-Configuration in Spring Boot?
Spring Boot’s auto-configuration feature automatically configures your application based on the dependencies in your classpath.
✅ It reduces boilerplate code.
❌ But sometimes, it can load configurations you don’t want.
For example:
- You may not want to use a database, but Spring Boot configures a DataSource by default.
- You may want to override the default configuration manually.
In such cases, you can disable specific auto-configurations.
🔧 3 Ways to Disable a Specific Auto-Configuration
✅ 1. Use exclude
in @SpringBootApplication
This is the most common and recommended way to disable unwanted auto-configuration classes.
@SpringBootApplication(
exclude = {
DataSourceAutoConfiguration.class,
HibernateJpaAutoConfiguration.class
}
)
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
💡 In this example:
DataSourceAutoConfiguration
andHibernateJpaAutoConfiguration
are excluded.- Useful when your app doesn’t need a database.
✅ 2. Use @EnableAutoConfiguration
with exclude
You can also use @EnableAutoConfiguration
directly instead of @SpringBootApplication
(if you're not using Spring Boot starter annotation).
@Configuration
@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class})
public class AppConfig {
}
📌 Note: @SpringBootApplication
internally includes @EnableAutoConfiguration
.
✅ 3. Disable via spring.autoconfigure.exclude
in application.properties
spring.autoconfigure.exclud…