SpringBoot的配置文件

SpringBoot的配置文件

  • 配置文件的作用
  • 配置文件的格式
  • properties配置文件
    • properties的基本语法
    • 读取配置文件
  • yml配置文件
    • yml的基本语法
    • 读取配置文件
    • Tips
      • 关于 \n
      • 配置对象
      • 配置集合
  • 对比properties与yml
    • 配置文件中包含中文
    • 链接数据库
    • 总结
  • 不同环境下的配置文件
  • 结尾

配置文件的作用


在项目中所有重要的数据都是在配置文件中进行相关的配置

例如

  • 数据库的连接信息(包含用户名和密码的设置)
  • 项目启动的端口号
  • 第三方系统的调用密钥等信息
  • 用于发现和定位问题的普通日志和异常日志

针对上述内容, 可以将 Spring Boot 配置文件划分为 2 类

  1. 系统配置文件
  2. 用户自定义配置文件

举个栗子

打包后的代码由 .java → .class
(不允许被修改)

SpringBoot的配置文件_第1张图片

此时如果想要进行修改端口号等操作, 就不能通过修改代码的方式进行

可以通过配置文件进行相应的修改

找到对应的 Jar 包

SpringBoot的配置文件_第2张图片

利用压缩文件打开 Jar 包

SpringBoot的配置文件_第3张图片

修改对应的配置文件即可

SpringBoot的配置文件_第4张图片

配置文件的格式


  • .properties
  • .yml

.properties的出现时间早于.yml, 其功能都是类似的
但优先执行.properties(出现较早)

例如@PostConstructinit-method都属于初始化方法

区别在于
@PostConstruct使用注解进行初始化(出现较晚)
init-method使用xml进行初始化(出现较早)
优先执行@PostConstruct(出现较晚)

利用application.properties设置端口号

SpringBoot的配置文件_第5张图片

利用application.yml设置端口号

SpringBoot的配置文件_第6张图片

利用 application.properties + application.yml 设置端口号

优先执行application.properties设置的端口号

SpringBoot的配置文件_第7张图片

注意

虽然.properties.yml可同时存在, 但通常会选择其中一种格式进行使用(劲酒虽好可不要贪杯呦~~)

properties配置文件


properties → 属性

properties的基本语法


properties 是以键值对的形式配置的

properties 的语法为 Key=Value

  • Key, 键
  • Value, 值
  • =, 分割键值对

properties 的注释为 #

SpringBoot的配置文件_第8张图片

读取配置文件


利用注解@Value("${所需读取的对象}")读取配置文件

SpringBoot的配置文件_第9张图片

SpringBoot的配置文件_第10张图片

yml配置文件


yml → YAML(Yet Another Markup Language)的缩写 → 另一种标记语言

  • yml 支持更多的数据类型, 可以简单表达数组, 散列表, 标量等数据形态
  • yml 支持更多的编程语言, 例如 Java, Golang, PHP, Python, JavaScript…

yml的基本语法


yml 是树形结构的配置文件

yml 的语法为 Key: Value

  • Key, 键
  • Value, 值
  • : , 分割键值对

(注意冒号后面的空格)

yml 的注释为 #

SpringBoot的配置文件_第11张图片

读取配置文件


利用注解@Value("${所需读取的对象}")读取配置文件

SpringBoot的配置文件_第12张图片

SpringBoot的配置文件_第13张图片

Tips


关于 \n


在 yml 中输入 str(字符串)有 3 种格式

  • str(直接输入)
  • 'str'(利用单引号将字符串括起来)
  • "str"(利用双引号将字符串括起来)

输入字符串(未添加 \n)

SpringBoot的配置文件_第14张图片

运行结果

SpringBoot的配置文件_第15张图片

输入字符串(添加 \n)

SpringBoot的配置文件_第16张图片

运行结果

SpringBoot的配置文件_第17张图片

结果分析

str直接输入字符串 → 所见即所得

'str'利用单引号将字符串括起来再添加\n → 所见即所得

"str"利用双引号将字符串括起来再添加\n\n后面的内容换行

配置对象


在 yml 中配置对象有 2 种方式

方式1

cat:
  type: 大橘
  price: 996
  age: 1

SpringBoot的配置文件_第18张图片

方式2

cat: {type: 1, price: 007, age: 1}

SpringBoot的配置文件_第19张图片

读取对象

定义一个Cat

  • @Component, 存储 Bean
  • @ConfigurationProperties(), 读取配置文件(.yml)中的对象
  • @Data, Lombok 插件提供的注解, 包含一系列方法(setter, getter, toString…)

注意

  1. 实体类中的属性名要和配置文件中的 Key 一致

  2. 实体类需要包含 setter
    (setter → 为实体类中的属性设置对应的值, 依据读取到的对象的值)

实体类中的属性名要和配置文件中的 Key 一致

SpringBoot的配置文件_第20张图片

SpringBoot的配置文件_第21张图片

将读取到的对象的信息输出在控制台

SpringBoot的配置文件_第22张图片

配置集合


在 yml 中配置集合有 2 种方式

方式1

cats:
  types:
    - 大橘
    - 布偶
    - 蓝猫

SpringBoot的配置文件_第23张图片

方式2

cats: {types: [大橘, 布偶, 蓝猫]}

SpringBoot的配置文件_第24张图片

读取集合

定义一个Cats

  • @Component, 存储 Bean
  • @ConfigurationProperties(), 读取配置文件(.yml)中的对象
  • @Data, Lombok 插件提供的注解, 包含一系列方法(setter, getter, toString…)

注意

  1. 实体类中的集合名要和配置文件中的集合一致

  2. 实体类需要包含 setter
    (setter → 为实体类中的集合设置对应的值, 依据读取到的集合的值)

实体类中的集合名要和配置文件中的集合一致

SpringBoot的配置文件_第25张图片
SpringBoot的配置文件_第26张图片

将读取到的对象的信息输出在控制台

SpringBoot的配置文件_第27张图片

对比properties与yml


配置文件中包含中文


当配置文件中包含中文, 使用 properties 读取需要修改 2 处配置

  • 配置文件的编码格式
  • 读取配置文件时的编码格式

当配置文件中包含中文, 使用 yml 无需修改配置

使用 properties 读取

配置文件的编码格式

SpringBoot的配置文件_第28张图片

读取配置文件时的编码格式

SpringBoot的配置文件_第29张图片

链接数据库


使用 properties 链接数据库

SpringBoot的配置文件_第30张图片

使用 yml 链接数据库

SpringBoot的配置文件_第31张图片

对比分析

使用 properties 链接数据库时, 比较冗余
每个步骤都包含spring.datasource

使用 yml 链接数据库
yml 是树形结构的配置文件, 对比 properties 较为便捷

总结

SpringBoot的配置文件_第32张图片

不同环境下的配置文件


根据业务的需求创建不同的配置文件

例如
开发环境下的配置文件, 生产环境下的配置文件…

注意

命名规则为application-环境.对应的配置文件格式

例如application-dev.yml(开发环境下的配置文件)

SpringBoot的配置文件_第33张图片

调用开发环境下的配置文件

SpringBoot的配置文件_第34张图片

结尾

创作不易,如果对您有帮助,希望您能点个免费的赞
大家有什么不太理解的,可以私信或者评论区留言,一起加油

你可能感兴趣的:(JavaEE,spring,boot,java,spring)