前言:

在springboot 项目中一般默认的配置文件是application.properties,但是实际项目中我们一般会使用application.yml 文件,下面就介绍一下在springboot 中读取 yml 配置的几种方式.

一、yml文件YAML语法基本介绍

1、以缩进代表层级关系
2、缩进不能使用tab,只能用空格
3、空格个数不重要,但是同一层级必须左对齐
4、大小写敏感
5、数据格式为,名称:(空格)值
6、注释单行用#,只能注释单行

二、YAML支持的数据格式

字面量:数字、字符串、布尔等不可再分的值
字符串默认不需要加单引号或者双引号,如果加双引号,它不会转义字符串里面的特殊字符,而加单引号,则会转义字符串里面的特殊字符,意思就是将特殊字符直接变为字符串输出。
例如:

key1: hbc
key2: true

对象:即为键值对,key= value
用冒号分隔键值对(Key: Value), Key需要顶格写,前面不能有空格,冒号后面需要有一个空格然后再跟值, 相同的缩进属于同一个map。
例如:

server:
  port: 8888
  servlet:
    context-path: /

数组:一组按顺序排列的值
用-来表示数组中的一个元素。

例子:

wechat:
  mp:
    configs:
    - appid: appid1
      secret: arr1_secret
      token: arr1_token
      aesKey: arr1_key
      msgDataFormat: JSON

    - appid: appid2
      secret: arr2_secret
      token: arr2_token
      aesKey: arr2_key
      msgDataFormat: JSON

三、读取yml配置文件

1、第一种读取方式@value

如果我们只需要配置文件中的一两个值,@Value 是最简单方便的方式.
yml文件中的配置

server:
  port: 8081

使用方法:

@Value("${server.port}")
public String port;	

2、第二种读取方式@ConfigurationProperties

user:
  salt: 12345678

javabean:

@ConfigurationProperties("user")
@Component
public class Salt {

    private String salt;

    public String getSalt() {
        return salt;
    }

    public void setSalt(String salt) {
        this.salt = salt;
    }
}

使用@ConfigurationProperties方式上述完成后,使用@Autowired引入即可。

3、第三种读取方式@Environment

yml文件中的配置

server:
  port: 8080

代码:

    @Autowired
    private Environment env;
    
    @Test
    public void test() {
        System.out.println(env.getProperty("server.port"));
    }
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐