springboot中.properties和.yml文件读取属性值

application.properties文件
(1) 不适用于静态方法,需要@component或@RestController等注入到bean中

@Value("${log.path}")

(2)可用于静态方法

Properties p = PropertiesLoaderUtils.loadAllProperties("application.properties");
String path= p.getProperty("log.path");

application.yml配置文件
(1)同上@Value
(2) 不能用于静态方法

@Autowired
Environment env;
String path= env.getProperty("log.path");

(3)适用于相同前缀的分层属性。其中prefix =相同前缀属性

@Component
@ConfigurationProperties(prefix = "log")
public class LogConfig {
    private String path;

    public String getPath() {
        return path;
    }
    public void setPath(String path) {
        this.path = path;
    }
}


@Autowired
LogConfig logConfig;

String path = logConfig.getPath();

(4)适用于静态方法中使用

try {
	Yaml yaml = new Yaml();
	URL url = FileUtil.class.getClassLoader().getResource("application.yml");
	if (url != null) {
	    //获取application.yml文件中的配置数据,然后转换为obj,
	    Object obj =yaml.load(new FileInputStream(url.getFile()));
	    //也可以将值转换为Map
	    //这里具体看你的配置文件有几层,我只有两层,所以两个Map套娃就够了
	    Map<String, Map<String, String>> map =(Map)yaml.load(new FileInputStream(url.getFile()));
	    //通过map我们取值就可以了.
	    Map<String, String> logmap = map.get("log");
	    serverURL = logmap.get("path");
	}
} catch (IOException e) {
		e.printStackTrace();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值