Spring Boot支持基于java的配置,虽然可使用XML源的SpringApplication
,可是咱们一般建议你的主源是一个@Configuration
类。一般,定义main
方法的类是一个很好的候选者,做为主要的@Configuration
。java
许多Spring配置示例已经在Internet上发布,它们使用XML配置。若是可能,始终尝试使用等效的基于java的配置,搜索
Enable*
注解多是一个很好的起点。
你没必要将全部@Configuration
放入一个类中,可使用@Import
注解导入额外的配置类,或者,你可使用@ComponentScan
自动提取全部Spring组件,包括@Configuration
类。spring
若是你必须使用基于XML的配置,咱们仍然建议你开始一个@Configuration
类,而后你可使用一个@ImportResource
注解加载XML配置文件。数据库
Spring Boot自动配置尝试根据你添加的jar依赖项自动配置Spring应用程序,例如,若是HSQLDB
在你的类路径上,而且你没有手动配置任何数据库链接bean,那么Spring Boot将自动配置一个内存中的数据库。segmentfault
你须要将@EnableAutoConfiguration
或@SpringBootApplication
注解选择的添加到你的其中一个@Configuration
类中。debug
你应该只添加一个@SpringBootApplication
或@EnableAutoConfiguration
注解,咱们一般建议只在主@Configuration
类中添加其中一个或另外一个。
自动配置非侵入性,在任什么时候候,你均可以开始定义本身的配置来替换自动配置的特定部分。例如,若是你添加了本身的DataSource
bean,默认的嵌入式数据库支持就会后退。调试
若是你须要了解哪些自动配置当前正在应用以及为何,使用--debug
开关启动应用程序,这样作能够为一些核心日志记录器选择调试日志,并将条件报告记录到控制台。日志
若是你发现你不想要的特定的自动配置类正在被应用,你可使用@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
属性来控制要排除的自动配置类的列表。内存
你能够在注解级别和使用属性定义排除。