有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在应用程序中定义空列表。弹簧靴中的yml

我有申请表。yml在我的spring boot项目中,并希望声明空列表。我的意思是有一个两级配置层次结构。此类是获取应用程序中声明的值所必需的。yml

@Configuration
@ConfigurationProperties("book")
public class PropertiesReader {

    private List<Long> authors;

    public List<Long> getAuthors() {
        return new ArrayList<>(authors);
    }

    public void setAuthors(List<Long> authors) {
        this.authors= new ArrayList<>(authors);
    }

这是应用程序的一部分。yml看起来像

book:
   library: ${LIBRARY_REFERENCE:library}
   secondValue:
      expirationAfter: 10
   authors: ${AUTHORS_IDS:[]}

因此,花括号中的值在另一个外部配置文件中声明。但若并没有声明值,spring应该分配冒号符号后面声明的默认值。在单值中它可以工作,但在列表中,若我如上所述声明它,我会得到NumberFormatException,因为值[]被分配给列表。如何正确书写

在外部配置中,它也应该如何编写?如果有时我想声明值,但有时它必须为空

name: AUTHORS_IDS
      value: 

共 (1) 个答案

  1. # 1 楼答案

    你只需要放一个冒号。我已经这样解决了我的问题,它起作用了

    book:
       authors: ${AUTHORS_IDS:}