混合 XML、Groovy 脚本和组件类

有时可能需要混合使用 XML 配置文件、Groovy 脚本和 组件类(通常@Configuration类)配置ApplicationContext用于您的测试。例如,如果您在 production 中,您可以决定要使用@Configuration要配置的类 特定的 Spring Management 组件,反之亦然。spring-doc.cadn.net.cn

此外,一些第三方框架(例如 Spring Boot)提供了一流的 支持加载ApplicationContext来自不同类型的资源 同时(例如,XML 配置文件、Groovy 脚本和@Configuration类)。Spring 框架历史上不支持此功能 标准部署。因此,大多数SmartContextLoader实现 Spring Framework 在spring-testmodule 仅支持一种资源类型 对于每个测试上下文。但是,这并不意味着您不能同时使用两者。一 一般规则的例外情况是GenericGroovyXmlContextLoaderGenericGroovyXmlWebContextLoader支持 XML 配置文件和 Groovy 脚本。此外,第三方框架可以选择支持 两者的声明locationsclasses通过@ContextConfiguration和 TestContext 框架中的标准测试支持,您有以下选项。spring-doc.cadn.net.cn

如果要使用资源位置(例如,XML 或 Groovy),并且@Configuration类来配置测试,则必须选择一个作为入口点,并且该类必须 include 或 import other。例如,在 XML 或 Groovy 脚本中,您可以包含@Configuration类,通过使用组件扫描或将它们定义为普通 Spring beans 的@Configuration类中,你可以使用@ImportResource导入 XML 配置文件或 Groovy 脚本。请注意,此行为在语义上是等效的 了解如何在生产环境中配置应用程序:在生产配置中,您 定义一组 XML 或 Groovy 资源位置或一组@Configuration您的生产从中ApplicationContext已加载,但您仍然拥有 自由包含或导入其他类型的配置。spring-doc.cadn.net.cn