赞
踩
努力经营当下,直至未来明朗!
普通小孩也要热爱生活!
① 数据库的连接信息(包含⽤户名和密码的设置等);
② 项⽬的启动端⼝;
③ 第三⽅系统的调⽤秘钥等信息;
④ ⽤于发现和定位问题的普通⽇志和异常⽇志等。
.properties
(早期版本,默认版本).yml
(后期版本,可以视为.properties的升级版)(二者是可以共存的)
properties配置文件 的基本语法:
key=value
(注意中间是没有空格的,后面也是没有空格的!!)
⼩技巧:配置⽂件中使⽤“#”来添加注释信息
另外:.properties默认是不支持中文的(yml支持中文),中文乱码问题的处理方法(但是,该方法受到Spring版本限制,某些版本可以解决乱码,另外一些则不能):
① File -> settings(配置当前项目) -> 左边搜索encoding -> 选择 File Encoding -> 全部设置为utf-8(三个) -> ok
② file -> new project settings(配置新建项目) -> 选择settings for new project s-> 后续操作一样
③ 删除原来的application.properties,然后重新创建一个application.properties。
因为之前的配置文件已经是不支持中文编码的文件格式,即使设置了编码格式之后也是没有改变原来的配置文件格式的,所以需要先将之前的配置文件删除掉重新创建,以此来实现中文的支持。
④ 经过以上三步之后才能创建一个不是中文乱码的application.properties文件,并且之后再创建application.properties 也是不会出现中文乱码的。
⑤ 或者:直接在类外加上注解,指定配置文件以及编码方式
⑥ 所以:非要使用中文的话,最好的方法是直接使用.yml作为配置文件
读取单个配置文件
在properties中设置配置文件
① 使用@Value
注解来读取配置文件的内容
② @Value 注解使⽤“ ${key值}
”的格式读取,{}中是key值。
③ 即:@Value(“${key值}”)
④ 注:key值不管是在yml中还是properties中都是x.y的形式(但是实际设置配置文件的时候是有区别的!)
[补充] 在yml中设置配置文件以及获取到配置文件
properties配置是以key=value(没有空格)
的形式进行配置的
从配置key可以看出,properties 配置⽂件中会有很多的冗余的信息。
要想解决properties文件的冗余信息,就可以使⽤ yml 配置⽂件的格式化了。
配置文件中出现中文会出现乱码问题:
① 它可以简单表达清单(数组)、散列表、标量等数据形态。
② 它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
③ 可以跨语言使用,如java、golang以及高版本python等
Key: value
(注意value前面的空格不可以省略!)# 字符串 string.value: Hello # 布尔值,true或false boolean.value: true boolean.value1: false # 整数 int.value: 10 int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制 # 浮点数 float.value: 3.14159 float.value1: 314159e-5 # 科学计数法 # Null,~代表null null.value: ~
① 读取为null的配置:多打印一行空行
② 根本不存在的配置:直接报错
1)配置对象:不要忘记key: value(空格!)
2)读取对象
注:@Data
是一个集合注解,里面包括get、set、toString、equals等等一系列方法,加上该注解之后就类似已经写了getter、setter、toString等方法(一定要加!!)
① 重新创建一个与对象匹配的类,属性名要与配置项中保持一致
② 在该匹配类上加上@Data注释以及@ConfigurationProperties(prefix = “xxx”)[
针对的是对象]注释(注意:prefix = “xxx”中的xxx是指配置文件中写好的key值;也**可以直接"key值"**不写prefix)
③读取赋值的过程是在项目的启动中加载的,要加上 五大类注解
(不能省略)。
④ 然后再另外的那个类中使用属性注入的方式进行读取
1)配置集合
2)读取集合
① 类似于对象的读取,先创建一个类,然后设置注解@ConfigurationProperties(“xxx,即yml中配置的集合名”)
【注意,这里加不加prefix=都是ok的】
② 存储是一个集合,所以在类中声明一个集合,如链表,但是要注意集合名称要和配置中保持一致!!
③ 直接使用属性注入获取就行
application.yml的键值对
测试输出:
对双引号中的内容进行转义:
小结:yml中单双引号问题:
yml中如果使用了双引号就会按照(原)语义进行执行,如果不加单、双引号 or 加了单引号,那么就默认会将字符串中的特殊字符进行转义,比如\n -> \\n(转义处理)。
如果想要了解更多Spring Boot的系统配置项,可以访问官网:系统配置项
properties 和 yml【面试题】
① properties 是以
key=value
的形式配置的键值类型的配置⽂件(没有空格);⽽ yml 使⽤的是类似 json
格式的树形配置⽅式进⾏配置的,yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ”英⽂冒号加空格的⽅式设置,并且空格不可省略。
② properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的解决数据冗余的问题。 】
③ yml 通⽤性更好,⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份配置⽂件作为 Java 和 Go 的共同配置⽂件。
④ yml ⽀持更多的数据类型。
Spring Boot读取配置文件的五种方法:
Spring Boot读取配置文件
设置不同环境的配置⽂件:
1)创建不同环境的配置⽂件:
① 开发环境:application-dev.yml
② 生产环境:application-prod.yml
2)在 application.yml 中设置运⾏环境
# 去选择使用哪种环境(生产or开发)
spring:
profiles:
active: dev
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。