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