如何通过Spring占位符在yaml中表达对象列表或数组?

时间:2018-11-02 19:50:36

标签: spring spring-boot properties yaml placeholder

我知道您可以使用占位符覆盖yaml config值,例如:

some-setting: ${SOME_SETTING:default value}

我知道您可以像这样表达对象列表:

customers:
  - name: acme
    category: manufacturing
    employees: 200 
  - name: virtucon
    category: evil
    employees: 1

那么我将如何通过$ {}占位符表示这种列表?

1 个答案:

答案 0 :(得分:0)

您必须创建一个ConfigurationProperties才能读取属性对象。

@Component
@ConfigurationProperties("app")
public class AppProperties {

    private List<Customer> customers = new ArrayList<>();

    public static class Customer {
        private String name;
        private String category;
        private int employees;
    }
}

通常,您还将在.yml文件中为此创建一个前缀

app:
   customers:
   - name: acme
     category: manufacturing
     employees: 200
   - name: virtucon
     category: evil
     employees: 1 

您现在可以在应用程序中的任何位置自动连接此类。