文章目录
- 1.配置文件作用
- 2.配置文件格式
- 2.1项目中同时存在两种配置文件
- 2.2application.properties
- 2.2.1 application.properties语法格式
- 2.2.2获取自定义配置项
- 2.3 application.yml
- 2.3.1 application.yml语法格式
- 2.3.1.1单双引号区别
- 2.3.1.2和application.properties格式对比:
- 2.3.1.3 yml配置对象
- 2.3.1.4 yml配置集合
- 2.3.1.5yml配置map
- 2.3.2获取自定义配置项key
- 2.3.3获取多个自定义配置项
- 2.3.4yml优缺点
大家好,我是晓星航。今天为大家带来的是 SpringBoot 配置文件 相关的讲解!😀
1.配置文件作用
1、数据库的连接信息(包含用户名和密码的设置)
2、项目的启动端口
3、第三方系统的调用密钥等信息
4、用于发现和定位问题的普通日志 和 异常日志 等。
5、还可以配置 日志的级别(规定只显示达到某个级别的日志),以及日志的持久化存储
2.配置文件格式
Spring Boot 配置文件有以下三种:
- application.properties
- application.yml
- application.yaml
properties优先级>yml优先级>yaml优先级
2.1项目中同时存在两种配置文件
在企业中我们常用application.properties或application.yml。通常只使用一个文件。
一个项目中同时存在application.properties 和 application.yml,那么我们idea会遵循哪一个配置文件呢?
application.properties:
application.yml:
idea运行结果:
注意看此时端口号为9090,和我们application.properties中指定的端口号一样。
得出结论:
如果项目中,同时存在properties和yml配置文件,properties的优先级更高
同时存在时,两个文件都生效,如果两个文件中,都包含同一个配置,以properties为主
那么如果properties中无配置,yml中指定端口号配置会生效吗?
application.properties:
application.yml:
idea运行结果:
可以发现当application.properties中无配置时,application.yml中的配置文件就会生效,他们的关系就和大当家与二当家一样,当大当家和二当家都有同一个命令时一定是听大当家的。但是大当家没有发号施令,而二当家发号施令了,此时大家就会听二当家的。
2.2application.properties
2.2.1 application.properties语法格式
key value的形式,以 =
分割
key的格式建议小写,单词之间使用.
分割
2.2.2获取自定义配置项
application.properties:
PropertiesController.java:
idea运行结果:
去掉$符号之后,就相当于赋值了一个普通的字符串
2.3 application.yml
2.3.1 application.yml语法格式
1、大小写敏感
2、使用缩进表示层级关系
3、禁止使用tab缩进,只能使用空格键
4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
5、使用#表示注释
6、字符串可以不用引号标注
7、:
冒号后面必须存在一个空格
8、null使用 ~
来表示
9、空字符串 key后面直接空着就行,推荐用单引号或者双引号括起来
2.3.1.1单双引号区别
例如此处的 \n 单引号就没有换行,还是解析成了\n。而双引号就讲\n解析成了换行。
2.3.1.2和application.properties格式对比:
注意:
Value(值)前面的空格不可省!不然会导致编译无效
此时端口号还是8080
当我们在Value值前或冒号后加上 空格 之后,我们此时端口号是多少呢?
可以看到加上了空格之后,我们的端口号成功改为了9092
2.3.1.3 yml配置对象
2.3.1.4 yml配置集合
配置内容:
配置内容读取:
2.3.1.5yml配置map
DBType.java:
application.yml:
idea运行输出结果:
2.3.2获取自定义配置项key
application.yml:
application.yml:
idea运行结果:
2.3.3获取多个自定义配置项
我们此处传多个key值
这里我们使用到了 @PostConstruct 这个注解,这个注解主要是用来初始化配置的一个注解方法
注:此时key3是整型类型,我们此处没有报错,因为我们传入的值确实是1024 - 一个整型。 如果我们类型不对等的话一定会发生报错的
idea运行结果:
可以看到此时初始化的值已经打印在idea上,且端口还是8080.
2.3.4yml优缺点
优点:
- 可读性高,写法简单,易于理解
- 支持更多的数据类型,可以简单表达对象,数组,List,Map等数据形态,
- 支持更多的编程语言,不止是]ava中可以使用,在Golang,Python,Ruby, JavaScript中也可以使用
缺点:
- 不适合写复杂的配置文件
- 对格式有较强的要求(一个空格可能引发一场血案)
3.验证码案例
- 不适合写复杂的配置文件
- 对格式有较强的要求(一个空格可能引发一场血案)
感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘