# 16\. 自动配置
Spring Boot 会根据您添加的jar依赖关系自动配置您的Spring应用程序。例如,如果HSQLDB在您的类路径上,并且您没有手动配置任何数据库连接bean,那么我们将自动配置内存数据库。
您需要通过将@EnableAutoConfiguration或@SpringBootApplication注解添加到您的一个@Configuration类中来选择自动配置。
> 您应该只添加一个@EnableAutoConfiguration注解。 我们通常建议您将其添加到主@Configuration类中。
### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#161逐渐取代自动配置)16.1逐渐取代自动配置
自动配置是非侵入式的,您可以随时定义自己的配置来替换自动配置。 例如,如果您添加自己的 DataSource bean,则默认的嵌入式数据库支持将会退回。
如果您需要了解当前有哪些自动配置,以及为什么,请使用--debug开关启动应用程序。 这将启用debug日志,并将自动配置日志记录到控制台。
### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#162-禁用指定的自动配置)16.2 禁用指定的自动配置
如果您发现正在使用一些不需要的自动配置类,可以使用@EnableAutoConfiguration的exclude属性来禁用它们。
```
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
```
如果类不在classpath路径上,则可以使用注释的excludeName属性,并指定全限定名(fully qualified name)。 最后,您还可以通过spring.autoconfigure.exclude属性控制要排除的自动配置类列表。
> 注解和使用属性(property)定义都可以指定要排除的自动配置类。
- Part I. Spring Boot 文档
- Part II. 入门指南
- 8. Spring Boot 介绍
- 9. 系统要求
- 10. 安装 Spring Boot
- 11. 开发您的第一个Spring Boot应用程序
- 12. 接下来应该读什么
- Part III. 使用 Spring Boot
- 13. 构建系统
- 14. 构建代码
- 15. 配置类
- 16. 自动配置
- 17. Spring Beans 和 依赖注入
- 18. 使用@SpringBootApplication注解
- 19. 运行你的应用程序
- 20. 开发工具
- 21. 包装您的应用程序到生产环境
- 22. 接下来应该读什么
- Part IV. Spring Boot 功能
- 23. SpringApplication
- 24. 外部配置
- 25. 配置文件(Profiles)
- 26. 日志
- 27. 开发Web应用程序
- 28. Security
- 29. 使用SQL数据库