目录 🚀🚀
配置文件的作用
整个项目中所有重要的数据都是在配置文件中配置的, 例如:
- 数据库的连接信息, 包括用户名和密码的设置
- 项目的启动端口
- 第三方系统的调用密钥等信息
- 用于发现和定位问题的普通日志和异常日志等
想象一下如果没有配置信息, 那么springBoot项目就不能连接和操作数据库, 甚至是不能保存可以用于排查问题的日志, 所以配置文件是非常重要的.
配置文件的格式
配置文件spring boot分为以下两种:
- .properties
- .yml
如下图所示:
可以类比一下服装店的服装一样, 有两种不同的款式, properties相当于老款式, yml相当于新款式.
理论上将properties可以和yml一起存在于一个项目当中, 当properties和yml在一起的时候, 如果配置文件中出现了同样的配置, 比如properties和yml中都配置了server.port, 那么这个时候会以properties为主, 也就是properties的配置文件的优先级最高, 但是加载完.properties文件之后也会加载yml文件的配置信息
虽然理论上将properties可以和yml共存, 但实际业务当中, 我们通常会采用一种统一的配置文件格式, 这样可以更好的维护.
.properties文件说明
基本语法
properties是以键值对的形式配置的, key 和 value之间是以 "=" 连接的, 例如:
server.port=8088
spring.datasource,url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=2222
配置文件中使用#来添加注释
读取配置文件
如果在项目中, 想要主动的读取配置文件中的内容, 可以使用@Value注解来实现, @Value注解使用${} 的格式来读取, 如下代码:
package com.example.demo1.Test;
import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class TestValue {
@Value("${server.port}")
private String port;
@PostConstruct
public void postConstruct() {
System.out.println("Read server port : " + port);
}
}
启动项目, 如下:
@Component 在springboot启动的时候会注入到框架当中, 注入到框架中会执行@PostConstruct初始化方法, 这个时候就会在控制台输出这个配置信息了.
缺点分析
properties配置文件中的配置是以键值对的形式出现的, 也就是key-value形式出现的, 可以对比java集合体系中的map, 如下图所示:
在书写的时候, 难免会出现很多冗余字段, 例如:
.yml 配置文件说明
yml是YAML的缩写, 全称为yet another markup language, 中文示意为另外一种标记语言
优点分析
- yml是一个可读性高, 写法简单, 易于理解, 它的语法和JSON类似
- yml支持多种数据类型,