弹簧靴如何工作,如何加载所有配置

时间:2017-12-03 08:44:28

标签: spring rest spring-boot restful-architecture

所以我正在使用spring boot进行其余的Api调用。 我想知道spring boot如何逐步加载所有配置。 就像加载配置时的过程一样,订单的遵循方式和方式。 Spring的安全性,数据库配置和bean初始化如何加载它们。 以及spring引导如何找到优先级(order),应该首先加载,然后应该是下一个。

1 个答案:

答案 0 :(得分:1)

根据Spring Boot中的自动配置机制加载Bean,jar文件的spring.factories文件夹中有一个META-INF文件,其中包含要加载的Configuration类的完全限定名称。登记/> 当Spring Boot找到这样的文件时,它会将配置加载为bean,配置通常会加载其他bean。

其他方式可以加载配置,只需简单@Import,有些工作就像那样,例如@EnableMetrics

包含此自动配置机制的Jar文件通常称为启动器。

有一些特殊的bean也将被Spring接收,例如FilterDefinitionBean将被转换为过滤器,或CommandLineRunner,它将在启动后执行。

通常您不必过多担心启动器的顺序,因为Spring Boot会根据依赖关系(带有@DependsOn注释的bean)自动检测正确的初始化顺序。 Spring引导启动autoconfiguraions发生在你的bean已经定义之后,所以他们可以给你回退bean,但前提是你没有定义它们。

但有时候,尤其是当您有@ConditionalOnBean时必须明确定义顺序时,可以通过@AutoConfigureBefore@AutoConfigureAfter注释来定义此自动配置必须初始化的位置。

另一个注释@AutoConfigureOrder@Order注释的Spring Boot等价物也可用于更改顺序(因为@Order不适用于自动配置)。

如果您检查自己喜欢的入门级源代码,您会看到这些订单更改注释通常会添加到课程中。