SpringBoot配置文件(学习笔记)(上)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: SpringBoot配置文件(学习笔记)(上)

一、配置文件概述

配置文件的作用

整个项目中所有重要的数据都是在配置文件中配置的。

比如:

1、数据库的连接信息(包含用户名和密码的设置)
2、项目的启动端口
3、第三方系统的调用密钥等信息
4、用于发现和定位问题的普通日志 和 异常日志 等。
5、还可以配置 日志的级别(规定只显示达到某个级别的日志),以及日志的持久化存储

想象一下:

如果没有配置信息,那么 Spring Boot 项目就不能连接和操作数据库,甚至是不能保存可以用于排查问题的关键日志,所以配置文件的作用是非常重要的


配置文件还有一个优点:

配置文件可以设置 开发环境 和 测试境,两个配置文件。

然后呢,在运行打包的时候,通过修改一个变量,就可以指定 当前项目 “走”哪一个配置文件。

所以,配置文件之间是可以并存的!
意思就是:
可以将两个,或两个以上的配置文件(开发的,测试的,运维的),项目上线的时候,我们只需要改一个参数,改一个名字。

然后,项目中所有的内容,全部都会走 另一个配置文件。非常方便!

到时候,会给你们演示一下。

另外,再补充一点。

配置文件的分类,里面的内容可以分为两个类:

  • 1、系统级别的
  • 2、自定义级别的


配置文件的格式

Spring Boot 配置⽂件主要分为以下两种格式:

1、.properties

2、.yml


【文件的后缀代表着文件的格式;配置文件也是如此!!!】

至于为什么要有两种格式?

这两者之间的关系,就像前面讲Bean 作用域 和 生命周期中的 @PostConstruct 与 init- method 之间的关系一样。

两者的功能是一样的,但是!是来自于 两个不同时间段 的 产物。


最早出现的配合文件格式是 .properties。

然后,在后期的使用中发现: properties 存在着一些缺陷。

那么,自然就会产生一个想法:properties 该怎么去优化?

于是,.yml 格式的配置文件,就诞生了。

这就和 maven 和 gradle 之间的关系一样。

gradle 是 maven 的升级版。

我们的 .yml格式的配置文件,就是 .properties格式配置文件 的 升级版。


前面讲过:一个项目中,可以存在多个配置文件。

即:配置文件之间是可以共存的!


也就是说:我们可以直接在项目中传建其他的配置文件,格式可以不同


二、application.properties 配置文件

基本语法

d69db67304cd4602ba19e85a8a36b6e0.png


而且!

在填写完后面的 value 值 之后,也不能加上一个空格。

会出事!!!

比如:

设置端口号:

f6aa2a630d2f4ede93826db5a995fb06.png

另外,我们还可以自定义键值对。【上面的是系统级别的配置】

33fed19f262248f58fb583362e31f8bf.png

因为我们已经把项目的端口号改成了9090,所有你再启动项目的时候端口号就变了

55738b09e283414fae217061d2af625f.png

更多配置文件详见:官方文档

8172079565fe4beb88f12118418a1a93.png

读取配置文件

到了 Spring Boot 时代,几乎所有的功能,都可以通过 注解来搞定。

读取配置文件也是一样的,

可以使⽤ @Value 注解来实现。
@Value 注解使⽤“${}”的格式读取.


1d931ea398554f4d9cd1a215773f855c.png

1d931ea398554f4d9cd1a215773f855c.png

在配置文件中用户可自定义各自类型的数据

e035c1faba064f45b7583b563ce498b6.png

三、application.yml 配置文件

yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔”。


yml 是⼀个可读性⾼,易于理解,⽤来表达数据序列化的格式。它的语法和其他⾼级语⾔类似(与 json 格式类似,键值对之间使用冒号+空格,进行分隔),并且可以简单表达清单(数组)、散列表,对象,标量,布尔,int等数据形态,甚至连 null 都可以设置!!!

它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。

yml 最⼤的优势是可以跨语⾔,不⽌是 Java 中可以使⽤。

golang、python 都可以使⽤ yml 作为配置⽂件。


总结下来, yml 配置文件一共有三个优点:
1、写法简单
2、支持多种数据类型
3、支持跨语言

上述这三个优点,都是 properties 配置文件所不具备的。


基本语法

yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒号加空格的⽅式组成的,其中的空格不可省略。

上面我们说了一个项目中,可以存在多个配置文件。

那么我们可以直接在项目中传建其他的配置文件,格式可以不同

d35b3c0bfa4a4aceb4b6c971aa3d9e7c.png

当一个项目的某个配置,出现在两种格式的配置文件中时,那么配置项会以properties 为主(忽略 yml 中的配置)。

如下图所示:


6686a2ecc4d542d89aac76271fb76f15.png

但其实与上面的application.properties相比,.yml配置文件还是挺好用的。

5bad5449ae2b483386b7f2971dd20209.png


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
存储 安全 Java
Spring Boot整合Spring Security--学习笔记
Spring Boot整合Spring Security--学习笔记
105 1
|
JSON 前端开发 Java
【SpringBoot学习笔记 十一】深入理解SpringBoot异常处理
【SpringBoot学习笔记 十一】深入理解SpringBoot异常处理
445 0
|
Dubbo Java 测试技术
【SpringBoot学习笔记 十二】SpringBoot异步任务、定时任务、邮件任务
【SpringBoot学习笔记 十二】SpringBoot异步任务、定时任务、邮件任务
149 0
|
前端开发 Java 开发者
【SpringBoot学习笔记 九】SpringBoot定制整合Thymeleaf及页面国际化(下)
【SpringBoot学习笔记 九】SpringBoot定制整合Thymeleaf及页面国际化(下)
167 0
|
移动开发 前端开发 JavaScript
【SpringBoot学习笔记 九】SpringBoot定制整合Thymeleaf及页面国际化
【SpringBoot学习笔记 九】SpringBoot定制整合Thymeleaf及页面国际化
109 0
|
存储 安全 算法
Java:SpringBoot整合Spring Security实现认证与授权学习笔记
Java:SpringBoot整合Spring Security实现认证与授权学习笔记
638 0
Java:SpringBoot整合Spring Security实现认证与授权学习笔记
|
JSON Java 应用服务中间件
SpringBoot 学习笔记之 “异常处理”
SpringBoot 学习笔记之 “异常处理”
|
Java
java202304java学习笔记第五十八天员工管理-Aop基础-springboot配置优先级2
java202304java学习笔记第五十八天员工管理-Aop基础-springboot配置优先级2
82 0
|
Java
java202304java学习笔记第五十八天员工管理-Aop基础-springboot配置优先级1
java202304java学习笔记第五十八天员工管理-Aop基础-springboot配置优先级1
65 0
java202304java学习笔记第五十八天员工管理-springboot-自动配置概述
java202304java学习笔记第五十八天员工管理-springboot-自动配置概述
64 0