Spring boot springboot:自动配置的工作原理和@JsonTest

Spring boot springboot:自动配置的工作原理和@JsonTest,spring-boot,spring-autoconfiguration,Spring Boot,Spring Autoconfiguration,我读过一些关于自动配置如何在幕后工作的东西(配置类带有@Conditional,spring.factories内部/META-INF等) 现在我试着用一个例子来理解:@JsonTest 我可以看到这个注释是用@AutoConfigureJson 这个@AutoConfigureJson到底做什么?它是否导入了一些包含bean的配置类?Spring如何知道如何使用此注释(基本上,此注释几乎是空的,没有说明要扫描哪些类)@AutoConfigure…(如@AutoConfigureJson)注释是

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

现在我试着用一个例子来理解:
@JsonTest

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


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

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

切片只将应用程序的一个子集加载到测试中,使它们运行得更快。假设您需要测试一个使用Jackson对象映射器的组件,那么您将需要
@JsonTest
切片。(以下是您的列表。)

但在测试中,您可能还需要框架的其他部分,而不仅仅是单个部分;比方说JPA层。您可能希望同时使用@JsonTest和@DataJpaTest对测试进行注释,以加载这两个切片,这是不受支持的

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

@JsonTest
@自动配置TAJPA
类别MyTests{
//测验
}
更新: 在评估注释的某一点上,Spring Boot将命中并传递给方法
SpringFactoriesLoader.loadFactoryNames()
一个源,即注释的完全限定名(例如
interface org.springframework.Boot.test.autoconfigure.json.AutoConfigureJson

学生们将施展魔法,阅读必要的信息


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

好的,谢谢。但我对幕后的情况很感兴趣。我的意思是:使用@AutoConfigure。。。可能会导入一些类和bean。这是怎么回事?Spring如何知道要导入哪些bean或配置类?好的,我已经添加了一些关于这方面的详细信息。