Spring Boot 配置文件

1. 配置文件的作用

配置文件主要是为了解决硬件编码带来的问题,把可能会发生改变的信息,放在一个集中的地方,当我们启动某个程序时,程序从配置文件中读取一些数据,并加载运行。

硬编码是将数据直接放在源代码中,如果把手机字体大小放在源代码中,那么所有用户使用的都是同一个字体大小,但是不同用户想要的字体大小可能会不相同,所以我们就可以把手机字体大小放在配置文件中,程序启动时,读取配置文件,以用户设置的字体大小来显示。使用配置文件,可以时程序完成用户和应用程序的交互,或者应用程序和其他应用程序的交互。

Spring Boot 支持并定义了配置文件的格式,很多项目或者框架的配置信息也放在配置文件中,例如:

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

 Spring Boot 支持三种配置文件:

  1. application.properties
  2. application.yml
  3. application.yaml

我们创建Spring项目时会默认生成一个application.properties配置文件

2. properties

2.1 properties基本语法

properties是以键值对的形式配置的,Key和Value之间使用 = 连接。

例如配置启动端口:

2.2 自定义配置 

Spring Boot配置中分为Spring配置,和自定义配置。Spring配置是官方定义好的方定义好的配置,例如这里的server.port,它的含义是设定好的,具体有哪些,可以在Spring官方网站中查询,自定义配置即程序员自己设定的配置。

2.3 获取配置内容

我们可以使用@Value获取配置的值:

注意使用格式。 

3. yml

3.1 yml 基本语法

yml是树形结构的配置文件,形式和HTML的标签嵌套相似,yml的基本语法是:"Key: Value"的形式,注意 冒号后要加空格。

运行程序:

可以看到端口号成功被改为9090 .

yml获取配置形式同样使用@Value注解,并且规则相同 

3.2 yml配置不同数据类型

yml可以指定配置的数据类型:

#字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
# 浮点数
float.value: 3.14159
# Null,~代表null
null.value: ~
# "" 空字符串
#, 直接后⾯什么都不加就可以了, 但这种⽅式不直观, 更多的表⽰是使⽤引号括起来
empty.value:

3.3 yml中单引号和双引号的区别

yml中字符串默认不用加上单引号或双引号,如果加上可以表示特殊含义:

获取这三个字符串,发现str3把 \n 理解为了回车。

  • 单引号会转义特殊字符,使其失去特殊功能,始终是⼀个普通的字符串
  • 双引号不会转义字符串⾥⾯的特殊字符,特殊字符会表⽰本⾝的含义

3.4  配置对象

yml中可以配置对象

注意,只能配置被Spring管理的对象

@ConfigurationProperties("student")
@Component
@Data
public class Student {
    private Integer id;
    private String name;
    private Integer age;
}

@ConfigurationProperties("student")的作用就是把配置信息添加到Spring管理的对象中,同时,我们获取对象的方式和上期讲解的方式相同。

3.5 配置集合

使用方法与配置对象相同。

相关推荐

  1. SpringBoot 配置文件

    2024-04-03 18:16:02       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 18:16:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 18:16:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 18:16:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 18:16:02       20 阅读

热门阅读

  1. codeforces round 936 div2(a,b,c)

    2024-04-03 18:16:02       18 阅读
  2. Python程序设计 魔法函数

    2024-04-03 18:16:02       14 阅读
  3. ACI Fabric

    2024-04-03 18:16:02       15 阅读
  4. wencoo个人的博客目录索引-更新

    2024-04-03 18:16:02       34 阅读
  5. Oracle extent、segment、datafile、tablespace及存储关系

    2024-04-03 18:16:02       15 阅读
  6. Oracle密码文件

    2024-04-03 18:16:02       12 阅读
  7. SpringMVC 中实现自定义转换

    2024-04-03 18:16:02       14 阅读
  8. 开源的分布式文件系统 Fastdfs 安装入门介绍

    2024-04-03 18:16:02       17 阅读
  9. 在stable diffusion中如何分辨lora、大模型、controlnet

    2024-04-03 18:16:02       12 阅读
  10. 第1章 开始

    2024-04-03 18:16:02       21 阅读
  11. 浅谈无文件攻击

    2024-04-03 18:16:02       11 阅读
  12. P1352 没有上司的舞会 【深搜树型DP】

    2024-04-03 18:16:02       17 阅读
  13. Solidity Uniswap V2 Router swapExactTokensForTokens

    2024-04-03 18:16:02       13 阅读