You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy编写Spring测试类:多XML配置加载失败求助

在Groovy的Spring测试中加载多个XML Bean配置的解决方案

嘿,这个问题我之前也踩过坑!你猜的没错,确实是Groovy对大括号{}的解析规则在搞鬼——Groovy里{}默认会被当作闭包来处理,而不是Java里的数组/集合初始化语法,所以你之前的写法才会失效。下面给你两种可行的解决办法:

方法1:直接用@ContextConfiguration加载多个配置

把大括号换成Groovy的数组/列表声明语法[],Spring就能正确识别多个XML配置路径了:

@RunWith(SpringRunner)
@SpringBootTest
@ContextConfiguration(locations = ["a.xml", "b.xml"])
class MyTest {
    // 你的测试逻辑写在这里
}

方法2:正确使用@ContextHierarchy

如果需要上下文层级,同样要把注解参数的大括号换成方括号[],明确告诉Groovy这是一个数组:

@RunWith(SpringRunner)
@SpringBootTest
@ContextHierarchy([
    @ContextConfiguration("a.xml"),
    @ContextConfiguration("b.xml")
])
class MyTest {
    // 你的测试逻辑写在这里
}

小提示

Groovy的语法糖虽然好用,但在注解参数里一定要注意:凡是需要传递数组或集合的地方,都要用[]而不是{},否则Groovy会把它解析成闭包,导致Spring无法正确识别你的配置路径。

内容的提问来源于stack exchange,提问作者Michael Hegner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:27:26