【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 属于新版,如果⽤户了解情况直接指定要新款,那么就直接发给他。
注意:
- 理论上讲 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
# 布尔值,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: ~
这里需要注意:当我们配置字符串的时候,一定要注意单双引号
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中设置我们需要的运行环境。