使用SpringBoot配置文件的详细说明

使用SpringBoot配置文件的详细说明

3bf5a72482f9af9c498e352ba9be53f1.jpeg



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


1288f5061302458af19dde3c9e6658cc.jpeg

#还有这个语法?
#添加启动命令:- 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将作为默认配置文件加载。


19cf4a77c137da008f70f3ab98cc9b38.jpeg

文件:。/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 {
私有字符串名称;
私有字符串到;
私有字符串来自;
}`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值