【进阶】Spring Boot配置文件(.properties提示有问题版)

news/2023/6/9 19:41:58

努力经营当下,直至未来明朗!

文章目录

  • 一、配置文件作用
  • 二、配置文件的格式
  • 三、properties配置文件说明
    • 1. properties 基本语法
    • 2. 读取配置文件
    • 3. properties缺点分析
  • 四、 yml配置文件说明
    • 1. yml基本语法
    • 2. yml使用进阶
    • 3. 注意:value值加单双引号
  • 五、 补充拓展
  • 小结


普通小孩也要热爱生活!

一、配置文件作用

  1. Class字节码文件只能读,不能进行修改
  2. 配置文件内容是可以直接进行修改的,对于运维人员来说也是比较友好的。
  3. 重要信息直接存入配置文件(如端口、连接数据库等)
  4. 配置文件的分类:
    1)系统的配置文件:比如连接字符串、日志的相关设置等,是系统定义好的。
    2)用户自定义的
  5. 整个项⽬中所有重要的数据都是在配置⽂件中配置的,⽐如:

数据库的连接信息(包含⽤户名和密码的设置);
② 项⽬的启动端⼝
③ 第三⽅系统的调⽤秘钥等信息
④ ⽤于发现和定位问题的普通⽇志和异常⽇志等。


二、配置文件的格式

  1. Spring Boot 配置⽂件主要分为以下两种格式:
    .properties (早期版本,默认版本)
    .yml (后期版本,可以视为.properties的升级版)

(二者是可以共存的)

  1. 配置文件是放在resources目录下的
  2. 约定大于配置:只有叫application.properties、application.yml(也就是前面是application才可以在Spring Boot启动的时候被加载
  3. 如果application.properties、application.yml均存在,并且有配置信息冲突时,早期的的application.properties优先!
  4. 特殊说明
    ① 一个项目中可以存放两种配置文件(.properties、.yml),但是不建议一个项目中出现两种配置文件,提高可维护性。
    ② 当一个项目的某个配置出现在两种格式的配置文件中时,此时匹配项会以properties为主(忽略yml中的配置)。
    ③ 也就是说:.properties文件的优先级更高,但是加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。
  5. 注:
    1).yml中是会有代码提示的,但是.properties中是不会有任何代码提示的
    2)此时需要安装Spring Tools插件,就可以解决默认情况下不支持.properties格式的日志提示的问题了。(这里有点不对,找不到插件!

三、properties配置文件说明

1. properties 基本语法

  1. properties配置文件 的基本语法:
    key=value(注意中间是没有空格的,后面也是没有空格的!!)

  2. ⼩技巧:配置⽂件中使⽤“#”来添加注释信息

  3. 另外:.properties默认是不支持中文的(yml支持中文),中文乱码问题的处理方法
    ① File -> settings(配置当前项目) -> 左边搜索encoding -> 选择 File Encoding -> 全部设置为utf-8(三个) -> ok
    0

② file -> new project settings(配置新建项目) -> 选择settings for new project s-> 后续操作一样
1

删除原来的application.properties,然后重新创建一个application.properties。

因为之前的配置文件已经是不支持中文编码的文件格式,即使设置了编码格式之后也是没有改变原来的配置文件格式的,所以需要先将之前的配置文件删除掉重新创建,以此来实现中文的支持。

④ 经过以上三步之后才能创建一个不是中文乱码的application.properties文件,并且之后再创建application.properties 也是不会出现中文乱码的。


2. 读取配置文件

读取单个配置文件

在properties中设置配置文件
2

① 使用@Value注解来读取配置文件的内容

② @Value 注解使⽤“ ${key值}”的格式读取,{}中是key值。

③ 即:@Value(“${key值}”)

④ 注:key值不管是在yml中还是properties中都是x.y的形式(但是实际设置配置文件的时候是有区别的!)
3
5

[补充] 在yml中设置配置文件以及获取到配置文件
6


3. properties缺点分析

  1. properties配置是以key=value(没有空格)的形式进行配置的
    7

  2. 从配置key可以看出,properties 配置⽂件中会有很多的冗余的信息

  3. 要想解决properties文件的冗余信息,就可以使⽤ yml 配置⽂件的格式化了。


四、 yml配置文件说明

  1. yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔”。
  2. yml优点:
    写法简单,可读性更高,语法和JSON类似。
    ② 支持的数据类型更多。

① 它可以简单表达清单(数组)、散列表、标量等数据形态。
② 它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。

③ 可以跨语言使用,如java、golang以及高版本python等


1. yml基本语法

  1. 基本语法:Key: value (注意中间空格不可以省略!
  2. 使用示例:
    8
  3. [补] yml是树形结构的配置文件

2. yml使用进阶

  1. yml配置不同数据类型及 null
# 字符串
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: ~
  1. 测试:

① 读取为null的配置:多打印一行空行
9
② 根本不存在的配置:直接报错
10
11

  1. yml配置和读取对象

1)配置对象:不要忘记key: value(空格!
13

2)读取对象
注:@Data是一个集合注解,里面包括get、set、toString、equals等等一系列方法
① 创建一个与对象匹配的类
② 在该匹配类上加上@Data注释以及@ConfigurationProperties(prefix = “xxx”)[针对的是对象]注释(注意:prefix = “xxx”中的xxx是指配置文件中写好的key值
③读取赋值的过程是在项目的启动中加载的,要加上 五大类注解(不能省略)。
15

④ 然后使用属性注入的方式进行读取
16
17

  1. yml配置和读取集合

1)配置集合
18

2)读取集合
① 类似于对象的读取,先创建一个类,然后设置注解@ConfigurationProperties(“xxx,即yml中配置的集合名”) 【注意,这里加不加prefix=都是ok的】
② 存储是一个集合,所以在类中声明一个集合,如链表,但是要注意集合名称要和配置中保持一致!!
③ 直接使用属性注入获取就行
19
20
21

3. 注意:value值加单双引号

  1. application.yml的键值对
    22

  2. 测试输出:
    在这里插入图片描述
    23

  3. 对双引号中的内容进行转义:
    25

  4. 小结:yml中单双引号问题:
    yml中如果使用了双引号就会按照(原)语义进行执行,如果不加单、双引号 or 加了单引号,那么就默认会将字符串中的特殊字符进行转义,比如\n -> \\n(转义处理)。


五、 补充拓展

  1. 如果想要了解更多Spring Boot的系统配置项,可以访问官网:系统配置项
  2. properties 和 yml

① properties 是以 key=value 的形式配置的键值类型的配置⽂件(没有空格);⽽ yml 使⽤的是类似 json
格式的树形配置⽅式进⾏配置的,yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ”英⽂冒号加空格的⽅式设置,并且空格不可省略
② properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的解决数据冗余的问题。 】
③ yml 通⽤性更好,⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份配置⽂件作为 Java 和 Go 的共同配置⽂件。
④ yml ⽀持更多的数据类型

  1. Spring Boot读取配置文件的五种方法:
    Spring Boot读取配置文件

  2. 设置不同环境的配置⽂件:
    1)创建不同环境的配置⽂件:
    application-dev.yml
    application-prod.yml
    2)在 application.yml 中设置运⾏环境

spring.profiles.active=dev

小结

  1. 配置文件存储重要数据
  2. 配置文件格式:.properties、 .yml
  3. .properties配置:key-value
  4. .yml配置:key: value(注意空格)
  5. yml的优点
  6. yml中value的单双引号使用

yyy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4554293.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

助眠好物推荐,帮助睡眠最好的办法

统计显示,在我国现阶段超3亿人存有失眠病,在其中近1/3的人要等到零晨1点之后才会入眠。忙学习培训、忙工作中、忙家中、忙社交媒体、忙加班加点……大白天,快速的生活的节奏产生各种各样工作压力,夜里,拥有是自身的可支…

提高效能 自我关怀的六个习惯(来自fastcompany)

追求和保持高效产出并不意味着按部就班的工作方式,又或者简单地记录下自己的每一个步骤。它的真正含义是自我关怀。在你做每一件事之前,以下的几条建议都能帮助到你。星期二上午8点,两位来自旧金山的企业家正在向未来投资者们介绍他们的商业方…

《高效能程序员的修炼》一导读

译者序 高效能程序员的修炼出版社的冀康一开始来找我谈翻译这本书的时候,我的第一反应是:这兄弟真是不知道我现在有多忙!我每天要处理200多封邮件;在资源有限的情况下经常要同时带6~7个项目,而且每个项目的…

提高效能 自我关怀的六个习惯

追求和保持高效产出并不意味着按部就班的工作方式,又或者简单地记录下自己的每一个步骤。它的真正含义是自我关怀。在你做每一件事之前,以下的几条建议都能帮助到你。 星期二上午8点,两位来自旧金山的企业家正在向未来投资者们介绍他们的商业…

优秀高效能人士建立生活秩序的7个好习惯

比如:时间管理的技巧,整理归纳的建议 编者按:高效能人士通过建立生活的秩序,以掌握更多的时间并提高利时间的利用率。“Order,Order,Order!”,那么生活中的秩序从何而来?作者谈到了时间管理的技巧&#xf…

python-文件和异常

1. 从文件中读取数据1.1. 读取整个文件在同目录下创建textA文本文件123 456 789a. open函数:要以任何方式去使用文件,都需要先打开文件,它接受一个参数——要打开文件的名称。 open()返回一个表示文件的对象。b. 关键字with在不再需要访问文件…

仙剑奇侠传7御灵有什么用?御灵的作用与培养策略

原文链接:仙剑奇侠传7御灵有什么用?御灵的作用与培养策略_游综宅-Get2021年最好玩零氪金手游 仙剑奇侠传7御灵有什么用?仙剑奇侠传7游戏中有一个御灵功能,许多玩家不知道御灵功能有什么用,该如何培养才能更好&#xf…

幻璃镜服务器维护中,仙剑奇侠传幻璃镜6月1日更新_仙剑奇侠传幻璃镜6月1日维护更新公告_快吧手游...

仙剑奇侠传幻璃镜在今天6月1日进行了维护更新,这次的游戏更新后,有哪些新的活动的呢?相信有很多小伙伴们都很想知道吧,那么接下来就由小编给大家带来了仙剑奇侠传幻璃镜6月1日维护更新公告,喜欢的小伙伴们快来看看吧&a…