download:物联网基础入门,实战可落地的 AIoT 项目含资料
使用SpringBoot配置文件的详细说明
1.创建一个SpringBoot项目
二。配置文件的类型
从上一节的图中可以看出,src/main/resources目录中的application.properties文件是创建的默认全局配置文件。
这是一种以。属性后缀。
【物联网基础入门,实战可落地的 AIoT 项目含资料】还有一种以结尾的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 {
私有字符串名称;
私有字符串到;
私有字符串来自;
}`
推荐阅读
- 嵌入式系统|嵌入式系统之bootloader简介
- 大数据|云计算到底是谁发明的()
- 树莓派|树莓派接入阿里云IOT平台1(Python模拟数据上传)
- 树莓派上NB-iot BC28模块连接华为云IOT平台过程记录
- 大数据|零售行业新渠道,效率居然这么高()
- 人工智能|橙色云构建研发协同生态链,助力企业降本增效
- 美格智能NB-IoT模组通过三个1000小时可靠性测试,并中标中国电信项目招标
- 百度|小米造车,价值几何()
- 历史上的今天|【历史上的今天】8 月 22 日(改变世界的程序员们;网络直播的鼻祖;何小鹏离开阿里巴巴)