文章目录
- 配置文件的作用
- 配置文件的格式
- Properties
- Properties基本语法
- 读取Properties配置文件
- yml
- yml基本语法
- 读取yml配置文件
- Properties VS Yml
配置文件的作用
整个项目中所有重要的数据都是在配置文件中配置的,具有非常重要的作用。比如:
- 数据库的连接信息
- 项目的启动端口
- 用于发现问题和定位问题的日志
配置文件的格式
注:
- properties格式是老版本,在创建SpringBoot项目时默认使用properties格式;yml格式是新版本。
- properties格式和yml格式可以同时出现在一个项目中,但是properties格式的配置文件优先级高(当在两种格式的配置文件里出现同一个配置时会采用properties格式的配置),在加载完properties格式的配置文件后也会加载yml格式的配置文件
- 建议在一个项目中只采用一种格式,便于维护。
Properties
Properties基本语法
server.port=8888
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/learning?characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=
注:
properties格式的配置文件是SpringBoot项目默认的配置文件
properties是以键值对的形式组织的,key和value之间用=连接
缺点:有很多冗余的信息,使用yml格式来解决
读取Properties配置文件
@Component
public class ReadProperties {
@Value("${server.port}")
private String port;
@PostConstruct
public void postConstruct(){
System.out.println("server.port:" + port);
}
}
注:
- 我们可以使用@Value注解来主动获取到配置文件中的内容
- @Value注解使用 ${} 的格式来读取配置文件
yml
yml基本语法
server:
port:8080
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/learning?characterEncoding=utf8&useSSL=false
username: root
password:
注:
- yml也是以键值对的形式组织的,key和value之间用:连接,:和value之间必须有一个空格
- yml有很多优点:可读性高、写法简单、支持更多的数据类型、支持更多的编程语言
读取yml配置文件
@Component
public class ReadYml {
@Value("${server.port}")
private String port;
@PostConstruct
public void postConstruct() {
System.out.println("Read YML,port:" + port);
}
}
注:读取yml格式配置文件的方式和读取properties格式配置文件的方式一样,都是使用@Value注解,采用 ${} 格式读取。
Properties VS Yml
- properties是以键值对 key=value 的形式配置的;yml是以 key: value 的形式配置的,层级之间采用换行缩进的方式,且空格绝对不能少
- properties是早期的配置格式,有数据冗余的问题;yml是新的配置格式,解决了数据冗余的问题
- yml的通用性更好,支持更多的编程语言
- yml支持更多的数据类型