Spring Boot 参考指南(自动配置)

15. 配置类

Spring Boot支持基于java的配置,虽然可使用XML源的SpringApplication,可是咱们一般建议你的主源是一个@Configuration类。一般,定义main方法的类是一个很好的候选者,做为主要的@Configurationjava

许多Spring配置示例已经在Internet上发布,它们使用XML配置。若是可能,始终尝试使用等效的基于java的配置,搜索 Enable*注解多是一个很好的起点。

15.1 导入额外的配置类

你没必要将全部@Configuration放入一个类中,可使用@Import注解导入额外的配置类,或者,你可使用@ComponentScan自动提取全部Spring组件,包括@Configuration类。spring

15.2 导入XML配置

若是你必须使用基于XML的配置,咱们仍然建议你开始一个@Configuration类,而后你可使用一个@ImportResource注解加载XML配置文件。数据库

16. 自动配置

Spring Boot自动配置尝试根据你添加的jar依赖项自动配置Spring应用程序,例如,若是HSQLDB在你的类路径上,而且你没有手动配置任何数据库链接bean,那么Spring Boot将自动配置一个内存中的数据库。segmentfault

你须要将@EnableAutoConfiguration@SpringBootApplication注解选择的添加到你的其中一个@Configuration类中。debug

你应该只添加一个 @SpringBootApplication@EnableAutoConfiguration注解,咱们一般建议只在主 @Configuration类中添加其中一个或另外一个。

16.1 逐渐取代自动配置

自动配置非侵入性,在任什么时候候,你均可以开始定义本身的配置来替换自动配置的特定部分。例如,若是你添加了本身的DataSource bean,默认的嵌入式数据库支持就会后退。调试

若是你须要了解哪些自动配置当前正在应用以及为何,使用--debug开关启动应用程序,这样作能够为一些核心日志记录器选择调试日志,并将条件报告记录到控制台。日志

16.2 禁用特定类的自动配置

若是你发现你不想要的特定的自动配置类正在被应用,你可使用@EnableAutoConfiguration的排除属性来禁用它们,以下例所示:code

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;

@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

若是类不在类路径上,则可使用注解的excludeName属性,并指定彻底限定的名称。最后,你还能够经过使用spring.autoconfigure.exclude属性来控制要排除的自动配置类的列表。内存

你能够在注解级别和使用属性定义排除。

上一篇:结构化你的代码

下一篇:Spring bean和依赖项注入

相关文章
相关标签/搜索