此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10spring-doc.cadn.net.cn

混合 XML、Groovy 脚本和组件类

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

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

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