配置类
Spring Boot支持基于Java的配置。尽管可以使用 SpringApplication
XML源,但我们通常建议您使用注解@Configuration
来配置。通常,定义main
方法的类是@Configuration
注解配置的地方。
许多使用XML配置的Spring配置示例已在网上发布。如果可能,请尽量尝试使用等效的基于Java注解的配置。搜索Enable*
注解可能是一个很好的起点。
导入其他配置类
你不需要把所有的@Configuration
东西都放在一个类里。@Import
注解可以用于导入额外的配置类。或者,您可以使用 @ComponentScan
自动获取所有Spring组件,包括 @Configuration
类。
导入XML配置
如果您必须使用基于XML的配置,我们建议您仍然从一个@Configuration
类开始。然后,您可以使用@ImportResource
注释来加载XML配置文件。
自动配置
Spring Boot自动配置会尝试根据您添加的jar依赖项自动配置Spring应用程序。例如,如果HSQLDB
在您的类路径上,并且您尚未手动配置任何数据库连接bean,则Spring Boot会自动配置内存数据库。
您需要在@Configuration
注解的类的任意一个中添加@EnableAutoConfiguration
或 @SpringBootApplication
注解来启动自动配置。
您应该只添加一个@SpringBootApplication
或@EnableAutoConfiguration
注释。我们通常建议您仅将一个或另一个添加到主@Configuration
类。
逐步更换自动配置
自动配置是非侵入性的。在任何时候,您都可以开始定义自己的配置以替换自动配置的特定部分。例如,如果添加自己的DataSource
bean,则默认的嵌入式数据库支持会退回。
如果您需要了解当前正在应用的自动配置以及原因,请使用--debug
参数来启动应用程序。这样做可以为选择的核心记录器启用调试日志,并将条件报告输出到控制台。
java --debug -jar path/projectName.jar
禁用特定的自动配置类
如果发现正在应用您不需要的特定自动配置类,则可以使用exclude属性在@EnableAutoConfiguration
注解中禁用它们,如以下示例所示:
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
属性来控制要排除的自动配置类列表 。
您可以在注释级别和要使用的属性中定义排除项。
网友评论