开发过程中有一些常量配置一般会写在application.yml文件中,而Spring Boot读取yml文件的主要方式有以下几种:
一、使用@Value注解
在bean的属性上使用@Value注解,直接读取yml中的值,如:
但这里面写法也有一些情况:其实这种写法对于 String 字符串其实没有什么影响,比如
配置文件 application.yml:
name: xiaobai
类引用处:
public class MyClass {
@Value("${name}")
private String name;
}
这是可以正常显示的,但是如果引用的要是 数组,map 类型的 ,使用@Value 肯定像最开始那要写的是有问题的。其实开始上面正确的数组引用方式为:
如果想要研究的更为详细,可以参考这篇文章:
Spring中利用@Value注解读取yml中的map配置_yml map写法https://blog.csdn.net/weixin_45614626/article/details/116596046
spring @Value注入map、List、Bean、static变量方式及详细使用https://blog.csdn.net/ZYC88888/article/details/88748516
SpringBoot配置文件&YAML配置注入(详解)https://blog.csdn.net/qq_45173404/article/details/108693030
二、使用@ConfigurationProperties注解
但如果用上面的方法太复杂了,其实就已经失去了将数据解耦的初衷了(就是为了简化配置),此时不妨换一个思路看看别的方法能不能更简单的实现。使用@ConfigurationProperties注解将yml中的值映射到bean的属性上,如:
三、使用 @YamlComponent注解
如果yml文件中用—分隔了多个文档,我们可以使用@YamlComponent注解将每份文档映射到一个bean上(这个用的较少)