download:WebRTC 源码级深度解析,进阶大厂高级音视频开发者
应用 SpringBoot 配置文件的具体阐明
1. 创立一个 SpringBoot 我的项目
二。配置文件的类型
从上一节的图中能够看出,src/main/resources 目录中的 application.properties 文件是创立的默认全局配置文件。
这是一种以。属性后缀。
还有一种以结尾的 YAML 文件类型。yml suffix-application.yml/application.yaml.
YAML 是一种比属性格局年老得多的配置格局,属性格局在云原生中应用。
三。配置文件 #的语法格局
3.1 利用类型. 属性 #
Properties 是 java 中常见的配置文件类型,其语法格局为 key=valve。
复制
` key=value ‘
复制代码
应用示例:
复制
` server.port = 80
server.ip = 127.0.0.1
app.property.key = proname
app.property.name = tom
app.list = 1,2,3
还有这个语法?
增加启动命令:- spring.profiles.active=dev
spring . profiles . active = $ {spring . profiles . active} #读取启动命令参数
属性占位符: 应用 ${var}语法来援用已定义属性的值。
app.desc = 您的姓名是${app . property . name} `
复制代码
3.2 application.yml 类型 #
将上述属性格局更改为 yml 格局:
复制
` 服务器:
端口:80
ip: 127.0.0.1
应用程序:
属性:
关键字:proname
姓名: 汤姆
列表:[1,2,3]
desc: 你的名字是 ${app.property.name}
春天:
个人资料:
active:$ {spring . profiles . active} ` 0
复制代码
例如,对于一个数组,能够这样写:
复制
` 人:
喜好:
篮球
跑步吗?
- 浏览
复制代码
你也能够这样写:
复制
` 人:
喜好:[篮球、跑步、浏览]
复制代码
YAML 反对以下数据类型:
对象: 键值对的汇合,也称为映射)/ 散列)/ 字典。
数组: 按顺序排列的一组值,也叫序列)/ 列表。
标量: 繁多的、不可分割的值。
3.3 配置随机值
SpringBoot 外部提供了一个随机的。* 属性,专门用于生成随机值。
属性 random.int 随机生成正负整数 random.int(max)随机生成整数 random.int(min[0,max]随机生成整数 random.long 随机生成正负长整数 random.long(max)随机生成 [0,长整数 random 区间的 long(min,max) 随机生成长整数 random。[min,max]区间的 UUID 随机生成一个 uuid 字符串 (包含 ’-‘ 字符)。‘ ‘ 示意除上述字符之外的其余字符,用于随机生成 32 位字符串。
配置示例:
复制
` int-val=${random.int}
int-range-val=${random.int(2)}
uuid-val=${random.uuid} `
复制代码
四。配置文件的加载程序 #
当 SpringBoot 启动时,以下地位的 application.properties 或 application.yml 将作为默认配置文件加载。
文件:。/config/
文件:。/config/*/
文件:。/
类门路:/config/
类门路:/
加载程序是从上到下,所有文件都会被加载,优先级高的内容会笼罩优先级低的内容。
动词(verb 的缩写)其余配置 #
5.1 其余配置 #
其实下面曾经用过了,比方把命令行参数信息读入配置文件。这里的命令行参数也是动静配置信息。
其余常见配置模式:
零碎变量: 这在 linux 中常常应用。
命令行参数: 启动应用程序时常常配置的运行参数。
Java 零碎属性: 通过 System.getProperties()获取。
评论一些属性文件集,比方 @PropertySource 设置的属性文件。
启动由 spring application . setdefaultproperties 类设置的默认属性。
5.2 什么是装载程序 #
命令行参数
Java 零碎属性
零碎环境变量
随机属性。* 价值
应用程序 -{profile}。{属性 |yml}
申请。{属性 |yml}
对 @PropertySource 设置的属性文件进行正文
启动由 spring application . setdefaultproperties 类设置的默认属性。
装载程序是从上到下。
不及物动词配置信息 #的性能
数据库信息保留
我的项目的启动信息,如测试、开发、生产环境、端口信息等。
一些自定义配置信息,如文件上传地址、调用第三方 url 地址、uid、密钥信息等。
等一下。
七: 读取配置文件 #
7.0 绑定配置的一些规定 #
SpringBoot 为 中配置的属性名提供了一些绑定规定。属性和。yml 文件,它不要求配置的属性名与 Bean 中的属性名完全相同。它反对以下规定的命名办法:
形容名字规范的驼峰命名的名字单词用 ’-‘ 分隔。Spring Boot 倡议用“_”来分隔名字。所有名字的单词都大写,并用“_”分隔。应用零碎环境变量时,倡议这样做。
7.1 通过 @Value annotation #读取
应用程序. yml:
复制
` 服务器:
端口:80
ip: 127.0.0.1 ‘
复制代码
应用正文 @ Value(“$ {属性名}”)将配置文件中的值注入到程序属性中。
复制
` @组件
公共类 ServerConfig {
@Value(“${server.port} “)
公共字符串端口;
@Value(“${$server.ip} “)
公共字符串 IP;
}`
复制代码
7.2 通读 @ConfigurationProperties 批注 #
7.2.1 @ConfigurationProperties 读取配置值 #
@ConfigurationProperties: 将配置文件中的相干配置与类中的属性绑定。
外面有一个参数。当然,这个参数能够留空。语法如下:
复制
@ configuration properties(prefix = "XXX")
复制代码
下面 application.yml 中的值也能够由上面的程序读取:
复制
` @组件
@ConfigurationProperties(前缀 = “ 服务器 ”)
公共类 ServerConfig {
公共字符串端口;
公共字符串 IP;
}`
复制代码
让咱们举一个更简单例子:
application.yml 文件:
复制
` 服务器:
端口:80
ip: 127.0.0.1
列表服务器:
BJ 服务器
GZ 服务器
地图服务器:{北京服务器:192.168.0.2,广州服务器:192.168.0.3}
dns:
bj: bj.dns.one
gz: gz.dns.two
港口:8081,8082 ‘
复制代码
读取配置文件:
复制
` @组件
@ConfigurationProperties(前缀 = “ 服务器 ”)
公共类 ServerConfig {
公共字符串端口;
公共字符串 IP;
集体散发名单服务器;
私人地图 mapServer
private int[]arr port;
专用域名零碎;
公共动态类 Dns {
私串 bj;
私串 gz;
}
}`
复制代码
下面也能够用 @Value 读取,程序同上例。
7 . 2 . 2 @ value 和 @ConfigurationProperties #之间的差别
@ConfigurationProperties@Value 函数批处理将配置文件中的属性一一注入。指定的属性是涣散绑定的。不反对 SPEL(表达式)。不反对 JSR303 数据验证。不反对简单类型。
7.3 @PropertySource 加载指定的配置文件
@ property source(” email-config.properties “),加载 email-config . properties 配置文件。
同样,您也能够加载。yml。
电子邮件配置属性:
复制
` email.name = jimmy
email . from = 123@test.com
email.to = 567@yeah.com ‘
复制代码
读取配置文件值:
复制
` @组件
@ property source(” email-config . properties “)
@ConfigurationProperties(前缀 = “email “)
公共类 EmailConfig {
公有字符串名称;
公有字符串到;
公有字符串来自;
}`