前言
在SpringBoot项目中,配置文件有两种写法,一种是.properties文件,一种是.yml文件,而在项目中常用的时yml文件,我们今天就来学习一下yml文件,我们主要从书写和配置两方面入手
一、yml的书写
书写规则
值的前面必须有空格,作为分隔符
使用空格作为缩进表示层级关系,相同的层级左侧对齐
案例
先创建一个项目,在resources下新建一个yml文件,可以看到yml文件左边有一个叶子的标识
那在里面如何书写配置呢?只需要记住配置的一部分即可,以配置端口号为例:
可以看到我只写了一部分,但是提示功能特别强
二、如何读取yml文件
方法
1:@Value(“${键名}”)
2:@ConfigurationProperties(prefix=“前缀”):实体类的成员变量与配置文件中的键名保持一致
案例1:使用@Value注解
在配置文件中编写内容
编写User类,使用@Value注解读取内容
@Component
public class User {
@Value("${user.username}")
private String username;
@Value("${user.password}")
private String password;
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
运行程序之后就会返回我们在配置文件里面写的结果
案例2:使用@ConfigurationProperties注解
我们只需要修改User类即可,把原来的注解删掉,换上下面的代码,修改一下配置信息的内容,输出不一样的数据
@Component
@ConfigurationProperties(prefix = "user")
public class User {
private String username;
private String password;
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
总结
今天我们学习了编写和读取yml文件的方式,主要是两个注解,你学会了吗
问题:你是否发现了使用@Value注解时没有提供set方法,而@ConfigurationProperties注解提供了set方法,在测试过程中,我发现使用@ConfigurationProperties不提供set方法会读取不了值,这个问题我也不清楚,如果有大佬路过请告知~
扩展:你是否发现了我们注入的变量都是普通的变量,那么是否可以使用注解注入static修饰的变量呢?快去试试吧!!!