【发布时间】:2016-11-20 19:36:26
【问题描述】:
跟随 Spring @ConfigurationProperties 类
@Component
@ConfigurationProperties(prefix = "prefix")
@EnableConfigurationProperties
public class config {
private Set<String> mySet = new HashSet<>();
}
跟随 Yaml 文件
prefix:
mySet: !!set {'element1', 'element2'}
使用 SnakeYaml 1.16 版
导致以下错误:
原因:org.springframework.beans.InvalidPropertyException: Invalid bean 类的属性“messageDelivery[0]” [位置.配置]: 索引属性路径“mySet[0]”中引用的属性是 既不是数组也不是 List 也不是 Map;返回值为 [element1]
在序列化过程中出现错误
更新
我试过这个 yaml 结构
prefix:
mySet:
element1
element2
这导致一个集合只有一个值,即“element1 element2”,它将两者连接在一起需要找出什么可以让我将元素彼此分开
【问题讨论】:
-
可能是申报的问题?不是数组集 ['element1' , 'element2'] 不是列表 ["element1" , "element2" , "element3"] 不是地图 {'element1' : 'apple' , 'element2' : 'orange'} 更改声明并尝试
-
@MuhammadFaisalHyder 我尝试了许多不同的方法来表达数据结构,包括你提到的那些,但它们导致了相同的 ara
-
prefix="channel-broker" 你试过了吗?因为你在这个 sn-p @Marquis Blount 中为 Bean 传递了不同的前缀
-
@MuhammadFaisalHyder 对此感到抱歉。那只是一个糟糕的复制和粘贴。两个前缀在我的实际环境中匹配
-
前缀:mySet : Marquis(下一行)Blount(下一行,删除这些)Faisal