文章目录
- 🎇前言
 - 1.配置文件的格式
 - 2. properties配置文件说明
 - 2.1 properties基本语法
 - 2.2 读取配置文件
 
- 3. yml 配置文件说明
 - 3.1 yml 基本语法
 
- 4.properties与yml 对比
 
 
 
🎇前言
学习一个东西,我们先要知道它有什么用处。整个项目中所有重要的数据都在配置文件中配置,例如:数据库的连接信息、项目启动窗口、第三方系统调用密钥、日志等级…,如果没有配置信息,那么 SpringBoot 项目就无法连接数据库,不能保存关键日志,因此,在项目中,配置文件的作用是及其重要的。
1.配置文件的格式
配置文件有两种格式:.properties和.yml(.yaml)
 
 他两个的关系就像是饭店里面出的新品和旧品的区别,.properties是旧品,.yml是新品。
注意:
- 理论上讲
 properties可以和yml⼀起存在于⼀个项目当中,当properties和yml⼀起存在⼀个项目中时,如果配置⽂件中出现了同样的配置,比如properties和yml中都配置了“server.port”,那么这个时候会以properties中的配置为主,也就是.properties配置⽂件的优先级高,但加载完 .properties ⽂件之后,也会加载.yml ⽂件的配置信息。- 虽然理论上来讲
 .properties可以和.yml共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护(降低故障率)。
2. properties配置文件说明
properties 配置⽂件是最早期的配置⽂件格式,也是创建 Spring Boot 项目默认的配置⽂件
2.1 properties基本语法
properties是以键值的形式匹配的,key与value之间有“=”连接:
# 配置项⽬端⼝号
server.port=8084
# 配置数据库连接
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/database?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
 
2.2 读取配置文件
如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。
 使用注解@Value使用${}的格式读取,如下:
@Component
public class Read {
    @Value("${server.port}")
    private String port;    
}
 
3. yml 配置文件说明
yml 是 YAML 是缩写,通常以.yml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式。
3.1 yml 基本语法
- 以 
k:v键值对的形式表示,冒号后面必须有一个空格。 - 对大小写敏感
 - 用递进表示层级关系,缩进只能用空格,不能用 
Tab键缩进 - 字符串可以不用双引号
 
如下代码:
# 配置项⽬端⼝号
server:
 port: 8084
  # 配置数据库连接
spring:
 datasource:
  url: jdbc:mysql://127.0.0.1:3306/database?characterEncoding=utf8
  username: root
  password: root
 
4.properties与yml 对比
- properties 是以 key=value 的形式配置的键值类型的配置文件,yml使用的类似于json格式的树形配置方式
 - properties 为早期并且默认的配置文件格式,配置时存在冗余数据的问题,使用yml可以解释数据冗余问题
 - yml通用性好,支持很多语言,例如:Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份配置⽂件作为 Java 和 Go 的共同配置文件。
 

![[工业互联-14]:机器人操作系统与ROS](https://img-blog.csdnimg.cn/6075dbd7249e4ee88541cf1ef5e25fce.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oiR5LiObmFubw==,size_20,color_FFFFFF,t_70,g_se,x_16)





![[mj_robot_sim]多关节机器人仿真软件介绍](https://img-blog.csdnimg.cn/19e0ff0b27e6415b8f679ef6910a0d2d.png)


![[RocketMQ] Broker asyncPutMessage处理消息以及存储的高性能设计措施 (十一)](https://img-blog.csdnimg.cn/a7bed7fd55a84e828039779d61a681ac.png)








