关注Spring @ConfigurationProperties Class
@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:无效 属性'messageDelivery [0]'的bean类 [location.Config]: 索引属性路径'mySet [0]'中引用的属性是 既不是数组也不是List也不是Map;返回值为[element1]
在序列化期间出现错误
更新
我试过这个yaml结构
prefix:
mySet:
element1
element2
这导致一个Set只有一个值,即“element1 element2”,它连接在一起需要找出什么才能让我将元素彼此分开
答案 0 :(得分:4)
我最终工作的结构需要添加一个逗号
prefix:
mySet:
element1,
element2
答案 1 :(得分:0)
请尝试:
prefix:
? element1
? element2
这应该用于表示yaml文件中的一个集合。您可以在此处查看详细信息:https://learnxinyminutes.com/docs/yaml/
答案 2 :(得分:0)
我发现您共享的代码中有2个问题。
mySet
是私有的,我想知道Spring如何将数据加载到其中prefix:
mySet:
- element1
- element2