假设我有一个Spring Boot 2项目的application.yml文件,其中包含该对象用于不同服务的一些副本:
foo:
circuitBreaker:
retryConfig:
retryConditions:
predicateNames: []
abortConditions:
predicateNames: []
breakConfig:
failureDefinition:
predicateNames:
- errorResponse
bar:
circuitBreaker:
...
(缩写为其他字段)我为RetryConfig提供了一个类,为BreakConfig提供了一个类,然后为它们都使用的第三类称为TriggerDefinition。
此外,我对重试配置对象进行了验证,该重试配置对象说重试和中止不能使用相同的谓词名称。
由于某种原因,Spring正在查看此对象,并将predateateNames字段的 all 分配给“ errorResponse”,而不仅仅是失败定义一个,然后验证失败。
为了使事情变得更奇怪,它仅对与该对象无关的类进行集成测试。 FooTest可以正确解析此对象,但是BarTest在尝试为foo加载应用程序上下文 时失败。
我如何让Spring为每个值获取正确的值,而不是将它们全部弄平并为predicateNames取一些不适用的列表?