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或配置类?好的,我已经添加了一些关于这方面的详细信息。