我已经阅读了一些有关自动配置如何在后台工作的信息(带有@Conditional
,spring.factories
内部/META-INF
等的配置类...)
现在,我试图通过一个例子来理解: @JsonTest
我可以看到此批注带有类似以下内容的批注 @AutoConfigureJson
这到底是@AutoConfigureJson
做什么的?是否导入一些带有bean的配置类?Spring如何知道如何使用此注释(基本上此注释几乎是空的,没有说明要扫描的类)
@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] 删除。
我来说两句