SpringBoot官⽅⽂档中⽂版-4.配置类与⾃动化配置
前⾔
这是 SpringBoot 官⽅⽂档中⽂翻译版系列的第四篇⽂章:
前三篇⽂章如下:
spring是什么意思啊中文配置类
Spring Boot ⽀持基于 java 的配置。尽管可以将 SpringApplication 与 XML ⼀起使⽤,但我们通常建议您的主类是⼀个 @Configuration
类,通常定义主⽅法的类是⾸选 @Configuration。
译者注:@SpringBootApplication 注解就已经包含了 @Configuration。
Internet 上已经发布了许多使⽤ XML 配置的 Spring 配置⽰例。如果可能,总是尝试使⽤等效的基于 java 的配置。搜索 Enable* 注释可能是⼀个很好的起点。
1. 导⼊额外的配置类
您不需要将所有的 @Configuration 放⼊单个类中。@Import 注释可⽤于导⼊其他配置类。或者,您可以使⽤ @ComponentScan ⾃动扫描所有 Spring 组件,包括@Configuration 类。
2. 导⼊ XML 配置
如果您绝对必须使⽤基于 XML 的配置,我们建议您仍然从 @Configuration 类开始。然后可以使⽤ @ImportResource 注释来加载 XML 配置⽂件。
⾃动化配置
Spring Boot ⾃动配置尝试根据添加的 jar 依赖项⾃动配置 Spring 应⽤程序。例如,如果 HSQLDB 位于类路径上,并且您没有⼿动配置任何数据库连接 bean,那么 Spring Boot 会⾃动配置内存中的数据库。
您需要通过添加 @Configuration 类中的 @EnableAutoConfiguration 或 @SpringBootApplication 注解来选择⾃动配置。
您应该只添加⼀个 @SpringBootApplication 或 @EnableAutoConfiguration 注解。我们通常建议您只在主 @Configuration 类中添加⼀个或另⼀个。
1. 逐渐取代⾃动配置
⾃动配置⾮侵⼊性。在任何时候,您都可以开始定义⾃⼰的配置,以替换⾃动配置的特定部分。例如,如果您添加⾃⼰的 DataSource bean,默认的嵌⼊式数据库⽀持就会后退。
如果您需要了解当前应⽤的是什么⾃动配置以及原因,请使⽤—— debug 开关启动应⽤程序。这样做可以为选择的核⼼⽇志记录器启⽤调试⽇志,并向控制台记录条件报告。
2. 禁⽤特定的⾃动配置类
如果你发现你不想要的特定的⾃动配置类正在被应⽤,你可以使⽤ @SpringBootApplication 的 exclude 属性来禁⽤它们,如下⾯的例⼦所⽰:
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class MyApplication {
}
如果类不在类路径上,则可以使⽤注释的 excludeName 属性并指定完全限定名。如果您更喜欢使⽤ @EnableAutoConfiguration ⽽不是
@SpringBootApplication,也可以使⽤ exclude 和 excludeName。最后,您还可以使⽤ lude 属性来控制要排除的⾃动配置类列表。
您可以在注解级别和使⽤属性定义排除。
提⽰:尽管⾃动配置类是公共的,但该类被认为是公共 API 的唯⼀⽅⾯是可⽤于禁⽤⾃动配置的类名。这些类的实际内容(如嵌套配置类或bean⽅法)仅供内部使⽤,我们不建议直接使⽤它们。
每天学习⼀点点,每天进步⼀点点。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论