文章目录
- 配置文件
- 配置文件的格式
- .properties格式
- .yml格式
- 配置信息读取
- .properties VS .yml
配置文件
配置文件是用来配置整个项目中的重要数据的,像最基本项目的启动端口、数据库的连接信息等等。对于一个完整的SpringBoot项目而言,配置文件是必不可少的一部分,对于项目的重要性自然也不言而喻。
配置文件的格式
SpringBoot配置文件主要有下面两种格式:
- .properties
- .yml
下面具体对两种格式的配置文件进行介绍:
.properties格式
.properties格式的配置信息设置方法如下,即不同级的配置项之间用点号.连接,配置项与具体的配置信息之间用等号=连接;
通过.properties格式设置配置信息,运行项目,可以在控制台看到具体的配置是否成功:
对于.properties格式的配置文件,其优点无疑也就是写法简单,key-value的形式也不易出错;但同时缺点也很明显,即这种配置格式的写法不够灵活和简便,对于一些同级的配置项,同样的前缀可能需要书写多次;
.yml格式
yml是YMAL的缩写,等价于YMAL;这种格式的配置信息设置方法如下,使用了更多的空白符和缩进的规则,是一种树形结构的设置方式;它的基本语法格式是 key: value ,在key和value之间使用英文冒号和一个空格分割,这里的空格不可以省略;
正确书写的情况下,编译器会对key进行高亮显示;
.yml的格式的可读性要更强,同时解决了数据冗余的问题,也要更加灵活和简洁。
yml格式可以配置不同的数据类型,包括NULL值:
yml格式的value值在进行配置时,默认是不加任何单引号或双引号的,但如果加上引号,可以表示特殊的含义:
首先在yml配置文件中进行下面的配置:
string1:
str1: it is \n a good day
str2: 'it is \n a good day'
str3: "it is \n a good day"
在类中进行配置信息的读取:
package com.example.demo;
import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user1")
public class UserController1 {
@Value("${string1.str1}")
private String str1;
@Value("${string1.str2}")
private String str2;
@Value("${string1.str3}")
private String str3;
@PostConstruct
public void postConstruct(){
System.out.println("str1: "+str1);
System.out.println("str2: "+str2);
System.out.println("str3: "+str3);
}
}
程序运行结果:
被双引号修饰的value值,其中的特殊字符会发挥自身的用途;
配置信息读取
package com.example.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@Value("${mykey.key1}")
private String myKey;
@RequestMapping("/key1")
public String key1(){
return "key1="+myKey;
}
}
配置信息的读取是借助注解@Value来完成的,同时注解之后的参数格式也有固定格式,只有遵循这种格式,才能读取配置信息成功;
.properties VS .yml
- properties格式是key=value的键值对的设置方式,yml格式是类似于json格式的树形结构的设置方式,使用冒号+空格的语法规则;
- properties的配置方法存在数据冗余的问题,yml的配置方式解决了数据冗余的问题;
- yml支持更多语言,通用性要更好;
- 两种格式的配置文件在一个项目中同时存在且产生配置冲突时,以properties格式的为主;但为了降低项目的故障率,更好的维护项目,建议采用统一的配置文件格式,以避免出现各种问题;
over!