0%

Spring Boot yaml文件配置多维数组

有时候我们需要在配置文件里面配置一些数组。以下示例是配置的二维数组,如果把 kv 键值分开来看,可以算作三维数组。

application.yaml

1
2
3
4
5
6
7
8
9
10
11
12
config:
arrs:
-
- k: a1k
v: a1v
- k: a2k
v: a2v
-
- k: b1k
v: b1v
- k: b2k
v: b2v

ArrsConfig.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package gy.finolo;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.List;


@Configuration
@ConfigurationProperties("config")
@Data
public class ArrsConfig {

private List<Kv>[] arrs;

@Data
public static class Kv {

public String k;
private String v;
}

}

需要特别注意,这里定义了一个 Kv 静态内部类,必须为 public static,属性如果使用 private,那就必须得到 getter/setter 方法,这里我使用了 @Data 注解,自动生成了
getter/setter 方法

需要使用配置变量的文件。

1
2
3
4
5
@Autowired
private ArrsConfig config;

config.getArrs()[0].get(0).k
config.getArrs()[1].get(1).getV()