配置文件格式
- .properties
- .yml
1.properties是项目创建时默认的,yml属于新版
2.两者可以共存,但是properties优先级更高
3.一般情况,会统一格式
1.properties配置文件说明
1.properties基本语法
properties是以键值的形式配置的,key和value之间以"="连接
#项目配置端口
server.port = 8888
2.读取配置文件
主动读取配置文件内容,使用@Value注解来是实现
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.PostConstruct;
/**
* Created by 伦敦看日出
* Description:
* User: yyt
* Date: 2023-04-24
* Time: 11:20
*/
@Component
public class ReadProperties {
@Value("${server.port}") // 注意@Value格式 ${}
private String port;
@PostConstruct
public void postConstruct() {
System.out.println("Properties,port:" + port);
}
}
执行结果:
@Component在Spring Boot启动时候会注入到框架中,注入到框架中时会执行@PostConstruct初始化方法,这个时候就能够读取到配置信息了。
3.properties缺点分析
properties是以key-value的形式配置的,这样可能会产生很多冗余的信息
2.yml配置文件说明
yml的最大优势是可以跨语言
1.yml基本语法
- key: value(英语冒号加空格,不可省略)
# 正确配置方式:中间有空格
string: java
# 错误配置方式:中间没有空格
string:java
2.yml使用示例
- 使用yml连接数据库
spring:
datasource:
url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
username: root
password: 1234
3.yml使用进阶
- 字符串默认不用加上单引号或者双引号
- 单引号会转义特殊字符,特殊字符最终只是一个普通的字符串数据
- 双引号不会转义字符串里面的特殊字符,特殊字符会作为本身想表示的意思
yml读取配置的方式和properties相同,使用@Value注解即可
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
* Created by 伦敦看日出
* Description:
* User: yyt
* Date: 2023-04-24
* Time: 12:31
*/
@Component
public class ReadYml {
@Value("${string.hello}")
private String Hello;
@PostConstruct
public void postConstruct() {
System.out.println("ReadYml,Hello:" + Hello);
}
}
执行结果
yml中可以配置对象或者配置集合
3.properties VS yml 总结
- properties与yml的配置形式不同
- properties为早期的配置方式,存在冗余问题,yml可以很好的解决问题
- yml的通用性更好,在使用云服务器配置的时候可以使用一份yml配置文件用于不同的语言
- properties可以和yml共存,但一个项目中建议使用一份配置类型文件