此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
混合 XML、Groovy 脚本和组件类
有时可能需要混合使用 XML 配置文件、Groovy 脚本和
组件类(通常@Configuration
classes)来配置ApplicationContext
用于您的测试。例如,如果您在
生产,您可以决定要使用@Configuration
要配置的类
特定的 Spring 管理组件,反之亦然。
此外,一些第三方框架(如 Spring Boot)提供了一流的
支持加载ApplicationContext
来自不同类型的资源
同时(例如,XML 配置文件、Groovy 脚本和@Configuration
类)。从历史上看,Spring Framework 不支持这一点
标准部署。因此,大多数SmartContextLoader
实现
Spring Framework 在spring-test
模块仅支持一种资源类型
对于每个测试上下文。但是,这并不意味着您不能同时使用两者。一
一般规则的例外是GenericGroovyXmlContextLoader
和GenericGroovyXmlWebContextLoader
同时支持 XML 配置文件和 Groovy
同时编写脚本。此外,第三方框架可以选择支持
两者的声明locations
和classes
通过@ContextConfiguration
,并且,使用
TestContext 框架中的标准测试支持,您有以下选项。
如果要使用资源位置(例如,XML 或 Groovy)和@Configuration
类来配置测试时,您必须选择一个作为入口点,并且该入口点必须
include 或 import 另一个。例如,在 XML 或 Groovy 脚本中,您可以包含@Configuration
类,使用组件扫描或将它们定义为普通 Spring
beans,而在@Configuration
类,您可以使用@ImportResource
导入 XML
配置文件或 Groovy 脚本。请注意,此行为在语义上是等效的
到如何在生产环境中配置应用程序:在生产配置中,您
定义一组 XML 或 Groovy 资源位置或一组@Configuration
您的生产所来自的类ApplicationContext
已加载,但您仍然有
可以自由地包含或导入其他类型的配置。