【Spring Boot学习】怎么配置文件,配置文件有什么用

前言:
💞💞今天我们依然是学习Spring Boot,这里我们会更加了解Spring Boot的知识,知道Spring Boot的配置文件是什么样子的。有什么用?怎么使用Spring Boot的配置文件。
💞💞路漫漫,希望大家坚持下去,不忘初心,成为一名优秀的程序员

个人主页⭐: 书生♡
gitee主页🙋‍♂:奋斗的小白
专栏主页💞:JavaEE进阶专栏
博客领域💥:java编程前端,算法,强训题目
写作风格💞:超前知识点,干货,思路讲解,通俗易懂
支持博主💖:关注⭐,点赞、收藏⭐、留言💬

在这里插入图片描述

1.配置文件

1.1什么是配置文件

 配置文件本质上是包含成功操作程序所需信息的文件,这些信息以特定方式构成。是用户可配置的,通常存储在纯文本文件中

配置文件可以是各种格式,完全凭借程序员的发挥,不过出于方便,大部分会选择的配置文件格式集中在那几种.一般而言程序启动时,会加载该程序对应的配置文件内的信息

1.2 配置文件的作用

 在我们所编写的项目中,所有的重要数据都是在配置文件中配置的,因此配置文件是非常重要的。

有这么几点作用:
1.数据库的连接工作
2.端口号的配置
3.打印日志等等

我们的后端程序都是要连接数据库的,所以没有配置信息你就不能连接数据库,甚至不能排查日志问题。

1.3 配置文件的格式

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

在这里插入图片描述
properties 类型的配置⽂件就属于⽼款,也是创建 Spring Boot 项⽬时默认的⽂件格式,⽽ yml 属于新版,如果⽤户了解情况直接指定要新款,那么就直接发给他。

注意:

  1. 理论上讲 properties 可以和 yml ⼀起存在于⼀个项⽬当中,当 properties 和 yml ⼀起存在⼀个项⽬中时,如果配置⽂件中出现了同样的配置,⽐如 properties 和 yml 中都配置“server.port”,
    那么这个时候会以 properties 中的配置为主,也就是 .properties 配置⽂件的优先级最⾼,但加载
    完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。
    2虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护(降低故障率)。

2.properties文件

2.1 properties文件的格式

properties文件的配置格式:
是以键值对形式存在的,key和value之间是以“=”连接的
例如:

> 这里是引用

注意: 配置⽂件中使⽤“#”来添加注释信息。

2.2 properties文件的读取

当我们想要读取配置文件的时候,我们可以使value注解来实现

value注解使用&{ }的格式来读取

@Controller //当前为类控制器
@ResponseBody //返回的是数据,不是页面
public class TestControler {

    @Value("${mytest}")
    private  String mytest;

    @Value("${mytest2}")
    private  String mytest2;

2.2 properties文件的缺点

当我们使用properties文件配置的时候,就会发现太过于冗余了。

spring.url= jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
spring.username= root
spring.password=123456

在这里插入图片描述

3.yml 配置⽂件

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

3.1 yml文件的格式

yml的语法格式:
key: value(注意冒号以后是有一个空格的,并且这个空格是不可以省略的)

在这里插入图片描述
可以看出来,但我们的配置是正确的时候,idea是会给我们有意识的。

当我们使用yml来配置数据库的时候,我们可以使用多级目录来配置。

pring:
  datasource:
    url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
    username: root
    password: 123456

在这里插入图片描述

3.2 yml文件的优缺点

优点:
1.yml 是⼀个可读性⾼,写法简单、易于理解,它的语法和 JSON 语⾔类似。
2.yml ⽀持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
3.yml ⽀持更多的编程语⾔,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、
JavaScript、Perl 中。

3.3 读取yml文件的对象

当我们要想通过yml来配置,一些对象的时候,我们会使用@ConfigurationProperties来配置

在这里插入图片描述

3.4 yml文件配置不同的类型

# 字符串
string.value: Hello
# 布尔值,truefalse
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: ~

这里需要注意:当我们配置字符串的时候,一定要注意单双引号

mystring: 你好, \n 世界
mystring1: '你好, \n 世界'
mystring2: "你好, \\n 世界"

在这里插入图片描述
当我们不添加引号的时候,是可以的,直接添加单引号的时候也是可以的,但是当我们使用双引号的时候,如果里面有斜杠,那么我们需要添加转义字符。

当我们配置对象的时候,我们有两种写法
在这里插入图片描述

4.properties VS yml

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

5.设置不同环境的配置⽂件

因为我们在以后得工作中我们会有开发和测试等等,因此可能需要配置不同的文件,所以我们需要设置不同的环境配置。

假设我们配置了一个开发的文件application-dev和一个测试的文件application-prod
那我们怎么在不同的情况下使用不同的配置呢?
这个时候呢我们就需要在yml中设置我们需要的运行环境。
在这里插入图片描述