软件编程
位置:首页>> 软件编程>> java编程>> SpringBoot yaml中的数组类型取值方式

SpringBoot yaml中的数组类型取值方式

作者:五洋捉鳖zz  发布时间:2022-10-14 20:05:36 

标签:SpringBoot,yaml,数组,取值

yaml中的数组类型取值

yaml中简单的风格,十分受大家的欢迎

先说下简单的配置如何取值


# application-dev.yml
testValue:
 testValueChild: testValueChildValue
...
// SomeServiceImpl.java
@Service
public class SomeServiceImpl {
// 这样就可以直接拿到配置信息啦
 @Value("${testValue.TestValueChild}")
 private String testValueChild;
...
}

有些时候我们会需要一些数组类型,下面简单介绍一种配置信息为数组的写法,比如我们有以下格式的配置,数据同步是否开启,以及数据同步需要同步的数据类型,


dataSync:
 enable: true
 type:
   - "1"
   - "2"
   - "3"

此时无法使用@Value取值,可通过如下方式取值,


...
// 单独注册一个bean,用于存储这类配置信息
@Component
@Data
@ConfigurationProperties(prefix = "data-sync")
public class DataSyncConfig {
   private Boolean enable;
   private List<String> types;
}
...
public class SomeServiceImpl{
 @AutoWired
 private DataSyncConfig dataSyncConfig;

public void youerMethod() {
 List<String> types = dataSyncConfig.getTypes();
}  
}

springboot配置文件yml的数组形式

配置文件


proxy:
   url:
   - "http://www.baidu.com"
   - "http://www.jd.com"

实体类


@Data
@NoArgsConstructor
@AllArgsConstructor
@Configuration
@ConfigurationProperties(prefix = "proxy")
public class ProxyConfig {
   private String[] url;
}

对象里面的引用名字(‘url'),必须和yml文件中的(‘url')一致,不然就会取不到数据。

来源:https://www.jianshu.com/p/20a11d185493

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com