一、前言
配置文件是一项非常重要的内容,它们通常用于存储应用程序的各种设置和配置选项,包含数据库连接信息、日志级别设置、端口设置等,可以根据情况切换不同的环境,因此良好的配置文件管理可以帮助我们应对多环境配置管理。我们学习常用的两种配置文件格式:YAML和Properties。
二、配置优先级
在SpringBoot中,有4个地方可以存放配置文件,并按照优先级从高到低排列如下:
1.项目根目录的config目录下
2.项目根目录下
3.resource目录的config目录下
4.resource目录下
三、Properties配置文件
Properties文件是Java应用程序中常用的配置格式。格式基本上就是键值对的形式,语法:key=value。
1.定义公共配置文件
db.name=hello
db.username=root
db.password=123456
2.属性注入
然后通过@Value注解将这些属性注入
package com.example.hellodemo.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @author qx
* @date 2023/11/28
* @des
*/
@Component
@Data
public class DbConfig {
@Value("${db.name}")
private String name;
@Value("${db.username}")
private String username;
@Value("${db.password}")
private String password;
}
3.定义接口请求测试
package com.example.hellodemo.controller;
import com.example.hellodemo.config.DbConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author qx
* @date 2023/11/27
* @des
*/
@RestController
public class DbController {
@Autowired
private DbConfig config;
@GetMapping("/hello")
public DbConfig test() {
return config;
}
}
然后我们在浏览器上进行接口请求测试
4.拓展
注释以#或!开头
#db.name=hello
!db.username=root
db.password=123456
续行符:properties使用反斜杠(\)将键值拆分成多行。
db.name=This is a hello \
world test \
and is end.
db.username=root
db.password=12345
四、YAML配置文件
YAML是一种可读的数据序列化格式,语法简单,可以轻松创建层次结构化的数据。语法: key: value,通常文件以.yml为后缀名。
db:
name: hello
username: root
password: 123456
注意事项:
不同等级用冒号隔开,冒号之后如果有值,冒号和值之间有一个空格。要么使用application.properties要么使用application.yml。
五、YAML和Properties的区别
1.Properties使用键值对的结构,而Yaml使用缩进的层次结构。
2.Properties只支持key-value键值对中字符串类型值,而Yaml支持多种数据类型。
3.由于其结构和语法简单,Properties文件相对于yaml文件来说更易读和理解
4.yaml比Properties更强大,支持包括注释、多行字符串、继承、引用等功能。这使得yaml更加灵活,适用于更复杂的配置需求
总的来说,如果只是简单的配置信息,Properties更加适合;如果需要更复杂的配置或者更灵活的配置方式,用yaml会更好。