yml properites 配置文件各种读取方式


前言

ymal,properties

一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里。在程序中就可以直接读取了,例如:


一、properties 文件

InputStream input =Thread.currentThread().getContextClassLoader().getResourceAsStream("abc.properties");
Properties prop = new Properties();
prop.load(input);

二、yaml 文件

1.基本读取

InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(yamlPath);
Yaml yaml = new Yaml();
HashMap map = yaml.loadAs(inputStream, HashMap.class);

2.进阶读取 (各种类型的读取方法)

第一种读取方式 @value

yml示例文件:

# 基本类型
title-one: 'play \n game'  # 单引号不会进行解析,直接输出\n
title-two: "play \n game"  # 双引号进行转义,会换行
tdata: 2022/05/26

# 集合类型
maps: "{key1: 'value1', key2: 'value2'}"
listsplit: aaa,bb,cc
@Value("${title-one}")
private String titleOne;
@Value("${title-two}")
private String titleTwo;
@Value("${tdata}")
private Date tdata;
@Value("#{${maps}}")
private Map<String, String> maps;
@Value("#{'${listsplit}'.split(',')}")
private List<String> listSplit;
@Value("#{'${listsplit}'.split(',')}")
private String[] listSplitArg;
@Value("#{'${listsplit}'.split(',')}")
private Set<String> listSplitSet;

第二种读取方式

yml示例文件:

prop:
#  arrval:
#    - a
#    - b
#    - c
  arrval: [a,b,c]
  setval:
    - d
    - e
    - f
#  setval: [d,e,f]
  listval:
    - x
    - m
    - z
#  listval: [x,m,z]
  tmap:
    amap: "maps1"
    bmap: "maps2"
    cmap: "maps3"
#  tmap: {amap: "maps1", bmap: "maps2", cmap: "maps3"}
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.List;
import java.util.Map;
import java.util.Set;

@ConfigurationProperties(prefix = "prop")
public class test {

    private String[] arrVal;
    private Set<String> setVal;
    private List<String> listVal;
    private Map<String, String> tmap;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值