gpt4 book ai didi

spring-boot - Spring 启动 : how auto configure works and @JsonTest

转载 作者:行者123 更新时间:2023-12-05 03:44:26 24 4
gpt4 key购买 nike

我读过一些关于自动配置如何在幕后工作的东西(配置类 @Conditionalspring.factories inside /META-INF 等等...)

现在我想通过一个例子来理解:@JsonTest

我可以看到这个注解是用@AutoConfigureJson

之类的东西注解的

这个 @AutoConfigureJson 到底做了什么?它是否导入了一些配置类,其中包含 bean? Spring如何知道如何使用这个注解(基本上这个注解几乎是空的,没有说要扫描哪些类)

最佳答案

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

切片仅将应用程序的一个子集加载到您的测试中,从而使它们运行得更快。假设您需要测试使用 Jackson Object Mapper 的组件,那么您将需要 @JsonTest 切片。 (这里是 all available slices 的列表。)

但您可能还需要在测试中使用框架的其他部分,而不仅仅是单个切片;让我们说 JPA 层。您可能希望同时使用 @JsonTest 和 @DataJpaTest 注释测试以加载两个切片。 According to the docs , 这是不支持的。

您应该做的是选择一个 @...Test 注释,并将另一个包含在 @AutoConfigure... 注释中。

@JsonTest
@AutoConfigureDataJpa
class MyTests {
// tests
}

更新:在评估注释时的某个时刻,Spring Boot 将命中 this line并将传递给方法 SpringFactoriesLoader.loadFactoryNames() 一个源,即注释的完全限定名称(如 interface org.springframework.boot.test.autoconfigure.json.AutoConfigureJson 例如)。

loadFactoryNames method会施展魔法并阅读必要的信息from here .

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

关于spring-boot - Spring 启动 : how auto configure works and @JsonTest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66437493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com