Skip to content

Latest commit

 

History

History
29 lines (21 loc) · 1.79 KB

16.Auto-configuration.md

File metadata and controls

29 lines (21 loc) · 1.79 KB

16. Auto-configuration

Spring Boot 自动配置试图通过你引入的 jar 依赖来自动配置你的应用。例如,如果 HSQLDB 在你的 classpath ,你不需要手工配置任何数据库连接的类, Spring Boot 自动帮你配置数据库。
你需要在你配有 @Configuration 的类里加入 @EnableAutoConfiguration@SpringBootApplication 注解来开启自动配置。

⭐你应该只加入 @SpringBootApplication@EnableAutoConfiguration 之。我们建议你只在你的主配置里面加入其中的一个。

16.1 Gradually Replacing Auto-configuration

自动配置是非入侵式的,在任何方面,你都可以配置你自己的配置来替换自动配置的配置。例如,如果你配置了你自己的 DataSource 类,默认的内嵌数据库配置就失效了。

如果你需要找出自动配置配置了什么和为什么这样配置, 用 --debug 参数来启动你的应用。这将为核心日志开启 debug 日志级别,并将自动配置相关的日志输出到控制台。


16.2 Disabling Specific Auto-configuration Classes

如果你找到了你自动配置的你不想配置的类,你可以使用 @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 注解并指定类的全名来替换。最后,你同样可以通过 spring.autoconfigure.exclude 属性来排除自动配置的类。

⭐ 你可以通过注解和属性来排除不需要的类。