我发现Spring Boot(或者一般的Spring)对yaml集合的处理有点奇怪。根据yaml规范的集合应该写在。yaml文件中,如下所示:
myCollection: ['foo', 'bar']
或
myCollection:
- foo
- bar
但是@value(“${myCollection}”)
注释或environment.getproperty(“myCollection”,string[].class)
(也尝试list.class
)都不能读取集合属性(返回null)。我所知道的唯一有效的方法是使用Spring Boot文档中描述的@configurationproperties
注释。
所以,我的问题是--如果我不能使用@configurationproperties
的话,什么是读取集合类型属性的好方法?同样奇怪的是,为什么逗号分隔格式有效,而不是YAML风格的集合。
编辑:更正了一些错别字
坦率地说,Spring boot application.properties和application.yaml或application.yml是用来加载配置属性的。
@configurationproperties
注释被设计为一种抽象,用于隐藏配置属性的实现,并支持。properties和。yaml/.yml。
但是,对于YAML/YML,Spring使用下面的org.yaml.snakeyaml.yaml
库来解析文件,并将其加载到org.springframework.boot.env.yamlPropertySourceLoader
中的properties
对象,并且集合
映射为集
,而不是数组或列表
。所以你试着做下面的事情;
Environment.getProperty("myCollection", Set.class)
我试图将子类属性绑定到GridViewColumn。我有一个母类M1和三个不同的子类S1、S2和S3。GridViewColumn由类M1的对象填充。我希望将S2的一个属性绑定到这个GridViewColumn的头,而M1中没有实现这个属性。 有人能给我解释一下怎么做吗?
我尝试使用来表示一组相同的输入,保存输入应该绑定到的属性。 我在组件中使用属性代理到实际的存储位置,但我的理解是属性应该与普通属性相同(使用普通属性具有相同的单向绑定行为)。 那么,如何正确地迭代一组要绑定到的属性呢?
我想通过使用@ConfigurationProperties注释将我的Application.Properties自动绑定到一个类中。首先,我尝试了@value注释,并能够将属性值注入类变量。但是,@ConfigurationProperties没有将属性注入到值中。 我的应用程序.属性: application.java ConfigBinder.java 输出: 这样的执行到底出了什么问题?
我有以下代码: 生日属性的类型为java.time。LocalDate,并且属于类Person。因为我使用JPA,所以我不想使用JavaFX属性。上述代码无法编译。编译器的错误消息是: 我该如何解决这个问题? 更新:我的个人类具有以下代码: 控制器类:
在我的XAML中: 我的gridviewcolumn的可见性现在应该取决于我的集合项的“isVisible”的值。那件事可能吗?
我一直在查看Laravel系列的文档和API,但似乎没有找到我想要的: 我想从集合中检索具有模型数据的数组,但只获取指定的属性。 例如,类似于,其中集合实际上包含用户的所有属性,因为它们在其他地方使用,但在这个特定位置,我需要一个包含userdata的数组,并且只包含指定的属性。 在拉雷维尔,似乎没有一个帮手来帮你我怎样才能用最简单的方法做到这一点?