Spring Boot/Cloud读取配置文件yaml中的数据格式(List、Map、Object、基本数据类型)| Spring Cloud 27
创始人
2025-05-31 16:36:28

一、概述

Spring Boot/Cloud读取配置文件yaml中的数据,包括:ListMapObject基本数据类型,并对@ConfigurationProperties@Value的使用场景和方式进行比较。

二、利用@ConfigurationProperties读取配置

2.1 配置文件样例

microservice:baseyaml:strVaule: strVauleintValue: 10floatValue: 8.5booleanValue: falselistStrValue:abcdmapStrValue:name: gmHappyage: 32users:root:username: rootpassword: rootpassguest:username: guestpassword: guestpass

2.2 通过@ConfigurationProperties读取

import java.util.List;
import java.util.Map;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;@Data
@Component
@ConfigurationProperties(prefix = "microservice.baseyaml")
public class BaseYamlProperties {private String strVaule;private int intValue;private float floatValue;private boolean booleanValue;private List listStrValue;private Map mapStrValue;private Map users;@Datapublic static class Credential {private String username;private String password;}
}

三、利用@Value读取配置

3.1 配置文件样例

microservice:valueyaml:listStrValue: a,b,c,dmapStrValue: "{key1: 'value1', key2: 'value2'}"
  • yaml文件中注入list注意事项:

    • @Value("#{'${microservice.valueyaml.listStrValue}'.split(',')}")#{} 内是SpEL表达式,使用 split 函数指定了分隔符
    • @Value("${microservice.valueyaml.listStrValue}}"):不指定分隔符则会默认以, 作为分隔符
  • yaml文件中注入map注意事项:

    • key可以但不必被单引号''包围
    • value必须被单引号''包围

3.2 通过@Value读取

@Value("#{'${microservice.valueyaml.listStrValue}'.split(',')}")
private List listStrValue;@Value("#{${microservice.valueyaml.mapStrValue}}")
private Map  mapStrValue;

3.3 ${} 与 #{}注意事项

  • #{…} 用于执行SpEl表达式,并将内容赋值给属性
  • ${…} 主要用于加载外部属性文件中的值
  • #{…}$ {…} 可以混合使用,但是必须#{}外面,${}在里面

3.3 不可通过@Value读取格式

以下格式不可通过@Value读取的yaml文件示例

microservice:valueyaml:listStrValue:- a- b- c- dmapStrValue:name: gmHappyage: 32

四、@ConfigurationProperties与@Value区别

功能性@ConfigurationProperties@Value
功能批量注入配置文件中的属性一个个指定
松散绑定(松散语法)支持不支持
Spring EL表达式不支持支持
JSR303数据校验支持不支持
复杂类型封装支持不支持

相关内容

热门资讯

最新或2023(历届)机关预备...   最新或2023(历届)机关预备党员转正申请书(一)  敬爱的党组织:  在去年的今天,我光荣地成...
研究生预备党员入党转正申请书范...   入党转正申请书格式:  1.标题  可以写"入党转正申请书"或"入党转正申请报告",一般写“转正...
最新或2023(历届)银行预备... 入党转正申请书,或入党转正申请报告,简称“转正申请书”,是预备党员在预备期满后,由本人主动向所在单位...
企业单位员工入党转正申请书 三...  入党转正申请书,或入党转正申请报告,简称“转正申请书”,是预备党员在预备期满后,由本人主动向所在单...
大学开学典礼教师演讲稿汇总 新...  9月1日大学开学典礼教师演讲稿  我曾千百次的回眸,凝望校园的青葱岁月,  我曾默默含泪挥手,作别...