gpt4 book ai didi

java - 更改@ConfigurationProperties 中的分隔符以读取列表属性

转载 作者:行者123 更新时间:2023-12-05 06:15:39 26 4
gpt4 key购买 nike

我在 application.properties 文件的一个属性中有一个值列表:

my-property=abc,def,ghi

然后我将它加载到我的 @ConfigurationProperties 类中:

@Configuration
@ConfigurationProperties
public class MyProperties {

private List<String> myProperty;
}

但我不知道如何更改分隔符(从逗号到分号或其他分隔符):

my-property=abc;def;ghi

我知道我可以编写解决方法,但我不想使用它们,因为:

  • @Value for property , 但它需要为每个字段手动编写属性名称(失去 @ConfigurationProperties 的优势)。
@Value("#{'${my-property}'.split(';')}")
private List<String> myProperty;
my-property[0]=abc
my-property[1]=def
my-property[2]=ghi
  • 使用split 编写getter,但我必须手动为所有属性编写getter:
private String myProperties;

public List<String> getMyProperty() {
return Arrays.asList(myProperties.split(";"));
}

最佳答案

我建议您从属性格式切换到 YAML 格式。那么您的列表将很容易在配置中表示:

my-app:
my-property:
- abc
- def
- ghi

配置 bean 如下所示:

@Configuraton
@ConfigurationProperties(prefix = "my-app.my-property")
public class MyProperties {
private List<String> myProperty;
}

优点:您无需关心索引。您可以随时轻松更改订单。您可以轻松地插入新元素或删除一些元素。您不需要关心解析、分隔符等。表示更易于阅读,尤其是当您有很多元素或它们很长时:如果您有 10 个元素,每个元素有 30 个符号,使用单行方法您将得到一串大约 300 个符号,难以阅读。

关于java - 更改@ConfigurationProperties 中的分隔符以读取列表属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62393624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com