SpringBoot的配置文件
🔎配置文件的作用
在项目中所有重要的数据都是在配置文件中进行相关的配置
例如
- 数据库的连接信息(包含用户名和密码的设置)
- 项目启动的端口号
- 第三方系统的调用密钥等信息
- 用于发现和定位问题的普通日志和异常日志
针对上述内容, 可以将 Spring Boot 配置文件划分为 2 类
- 系统配置文件
- 用户自定义配置文件
举个栗子🌰
打包后的代码由 .java → .class
(不允许被修改)
此时如果想要进行修改端口号等操作, 就不能通过修改代码的方式进行
可以通过配置文件进行相应的修改
找到对应的 Jar 包
利用压缩文件打开 Jar 包
修改对应的配置文件即可
🔎配置文件的格式
.properties
.yml
.properties
的出现时间早于
.yml
, 其功能都是类似的
但优先执行
.properties
(出现较早)
例如
@PostConstruct
与
init-method
都属于初始化方法
区别在于
@PostConstruct
使用注解进行初始化(出现较晚)
init-method
使用xml进行初始化(出现较早)
优先执行
@PostConstruct
(出现较晚)
利用
application.properties
设置端口号
利用
application.yml
设置端口号
利用
application.properties
+
application.yml
设置端口号
优先执行
application.properties
设置的端口号
注意🍭
虽然
.properties
与
.yml
可同时存在, 但通常会选择其中一种格式进行使用(劲酒虽好可不要贪杯呦~~)
🔎properties配置文件
properties → 属性
properties的基本语法
properties 是以键值对的形式配置的
properties 的语法为
Key=Value
- Key, 键
- Value, 值
- =, 分割键值对
properties 的注释为 #
读取配置文件
利用注解
@Value("${所需读取的对象}")
读取配置文件
🔎yml配置文件
yml → YAML(Yet Another Markup Language)的缩写 → 另一种标记语言
- yml 支持更多的数据类型, 可以简单表达数组, 散列表, 标量等数据形态
- yml 支持更多的编程语言, 例如 Java, Golang, PHP, Python, JavaScript…
yml的基本语法
yml 是树形结构的配置文件
yml 的语法为
Key: Value
- Key, 键
- Value, 值
:
, 分割键值对
(注意冒号后面的空格)
yml 的注释为 #
读取配置文件
利用注解
@Value("${所需读取的对象}")
读取配置文件
Tips
关于 \n🍭
在 yml 中输入 str(字符串)有 3 种格式
str
(直接输入)'str'
(利用单引号将字符串括起来)"str"
(利用双引号将字符串括起来)
输入字符串(未添加 \n)
运行结果
输入字符串(添加 \n)
运行结果
结果分析🍂
str
直接输入字符串 → 所见即所得
'str'
利用单引号将字符串括起来再添加
\n
→ 所见即所得
"str"
利用双引号将字符串括起来再添加
\n
→
\n
后面的内容换行
配置对象🍭
在 yml 中配置对象有 2 种方式
方式1🍂
cat:type: 大橘
price:996age:1
方式2🍂
cat:{type:1,price:007,age:1}
读取对象
定义一个
Cat
类
- @Component, 存储 Bean
- @ConfigurationProperties(), 读取配置文件(
.yml
)中的对象 - @Data, Lombok 插件提供的注解, 包含一系列方法(setter, getter, toString…)
注意🍂
- 实体类中的属性名要和配置文件中的 Key 一致
- 实体类需要包含 setter (setter → 为实体类中的属性设置对应的值, 依据读取到的对象的值)
实体类中的属性名要和配置文件中的 Key 一致
将读取到的对象的信息输出在控制台
配置集合🍭
在 yml 中配置集合有 2 种方式
方式1🍂
cats:types:- 大橘
- 布偶
- 蓝猫
方式2🍂
cats:{types:[大橘, 布偶, 蓝猫]}
读取集合
定义一个
Cats
类
- @Component, 存储 Bean
- @ConfigurationProperties(), 读取配置文件(
.yml
)中的对象 - @Data, Lombok 插件提供的注解, 包含一系列方法(setter, getter, toString…)
注意🍂
- 实体类中的集合名要和配置文件中的集合一致
- 实体类需要包含 setter (setter → 为实体类中的集合设置对应的值, 依据读取到的集合的值)
实体类中的集合名要和配置文件中的集合一致
将读取到的对象的信息输出在控制台
🔎对比properties与yml
配置文件中包含中文
当配置文件中包含中文, 使用 properties 读取需要修改 2 处配置
- 配置文件的编码格式
- 读取配置文件时的编码格式
当配置文件中包含中文, 使用 yml 无需修改配置
使用 properties 读取🍭
配置文件的编码格式
读取配置文件时的编码格式
链接数据库
使用 properties 链接数据库
使用 yml 链接数据库
对比分析🍂
使用 properties 链接数据库时, 比较冗余
每个步骤都包含
spring.datasource
使用 yml 链接数据库
yml 是树形结构的配置文件, 对比 properties 较为便捷
总结
🔎不同环境下的配置文件
根据业务的需求创建不同的配置文件
例如
开发环境下的配置文件, 生产环境下的配置文件…
注意🍭
命名规则为
application-环境.对应的配置文件格式
例如
application-dev.yml
(开发环境下的配置文件)
调用开发环境下的配置文件
🔎结尾
创作不易,如果对您有帮助,希望您能点个免费的赞👍
大家有什么不太理解的,可以私信或者评论区留言,一起加油
版权归原作者 哔卟哔卟_: ) 所有, 如有侵权,请联系我们删除。