Spring Boot:自动配置和@JsonTest的工作方式

安东·波夫(AntonBoarf)

我已经阅读了一些有关自动配置如何在后台工作的信息(带有@Conditionalspring.factories内部/META-INF等的配置类...)

现在,我试图通过一个例子来理解: @JsonTest

我可以看到此批注带有类似以下内容的批注 @AutoConfigureJson

这到底是@AutoConfigureJson做什么的?是否导入一些带有bean的配置类?Spring如何知道如何使用此注释(基本上此注释几乎是空的,没有说明要扫描的类)

e

@AutoConfigure... (例如@AutoConfigureJson)批注是允许使用多个“切片”进行测试的方法。

切片仅将应用程序的一部分加载到测试中,从而使它们运行得更快。假设您需要测试使用杰克逊对象映射器的组件,那么您将需要@JsonTest切片。(这是所有可用切片的列表。)

但是您可能还需要在测试中使用框架的其他部分,而不仅仅是单个切片。假设JPA层。您可能想同时使用@JsonTest和@DataJpaTest注释测试以加载两个切片。根据docs,不支持此功能。

相反,您应该选择一个@...Test注释,并在另一个@AutoConfigure...注释中添加注释。

@JsonTest
@AutoConfigureDataJpa
class MyTests {
// tests
}

更新:在评估注释的某个时候,Spring Boot会点击此行,并将SpringFactoriesLoader.loadFactoryNames()源(即注释的完全限定名称)传递给方法interface org.springframework.boot.test.autoconfigure.json.AutoConfigureJson

loadFactoryNames方法将做它的魔力和读取所需信息从这里

如果需要更多详细信息,最好的方法是使用调试器,并按照所有步骤进行操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章