配置文件
计算机上有数以千计的配置⽂件, 我们使⽤的绝⼤多数软件, ⽐如浏览器, 微信, Idea, 甚⾄电脑, ⼿机, 都 离不开配置⽂件。我们可能永远不会直接与其中的⼤部分⽂件打交道,但它们确实以不同的形式散落在我们的计算机上, ⽐如C:\Users, C:\Windows⽂件夹, 以及各种 *.config, *.xml 文件。
配置文件作用
配置文件主要是为了解决硬编码所带来的问题,也就是将可能改变的信息,集中放到同一个地方,当我们启动某个程序时,应用程序从配置文件中读取数据,并加载运行。
比如在我们玩游戏时,有的玩家需要更改不同的分辨率以适应个人习惯,而游戏的发行厂商往往适配了多种不同的方便率可供玩家选择。
使用配置文件,能够更好的使程序完成和用户的交互,或者应用程序与其他程序的交互。
SpringBoot配置文件
SpringBoot支持并定义了配置文件的实现格式,也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的⽬的。
很多项目或者框架的配置信息也放在配置文件中,比如:
1.项目启动的端口
2.数据库连接(包括用户名和用户密码)
3.第三方系统的调用密钥等信息
4.⽤于发现和定位问题的普通⽇志和异常⽇志等
配置文件格式
配置文件共有三种格式:1.application.properties 2.application.yml 3.application.yaml
yml为yaml的简称,在企业中出现率最高,yaml和yml的使用方式相同,在这里我们只介绍yml的使用.
properties配置文件
properties基本语法
properties 是以键值的形式配置的,key 和 value 之间是以"="连接的,如:
在配置文件中还可以以#开头书写注释
配置文件读取
如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。 @Value 注解使⽤" ${} "的格式读取,如下代码所⽰:
@RestController
public class PropertiesController {
@Value("${myvalue.value1}")
private String value1;
@RequestMapping("/properties")
public String print(){
return "读取的值: "+value1;
}
}
properties缺点分析
properties配置文件的格式较冗余,想解决这个问题,就需要用到yml.
yml配置文件
yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔" 我们先来学习yml的语法.
yml基本语法
yml是树形结构的配置文件,形式类如"key: value",通过换行+缩进区分不同的子级结构,value前一定要加空格,空格不可省略。
yml进阶
yml 配置不同数据类型
写入yml配置
@RestController
public class YmlController {
@Value("${string.value1}")
private String value1;
@Value("${string.value2}")
private String value2;
@Value("${string.value3}")
private String value3;
@Value("${int.num1}")
private Integer num1;
@RequestMapping("/yml")
public String print(){
System.out.println(value1);
System.out.println(value2);
System.out.println(value3);
System.out.println(num1);
return "yml";
}
}
读取yml中的内容
使用yml还可以配置多种不同的数据结构如list、map等等。
yml优缺点分析
优点:
1. 可读性⾼,写法简单, 易于理解
2. ⽀持更多的数据类型, 可以简单表达对象, 数组, List,Map等数据形态.
3. ⽀持更多的编程语⾔, 不⽌是Java中可以使⽤, 在Golang, Python, Ruby, JavaScript中也可以使⽤
缺点:
1. 不适合写复杂的配置⽂件
2.对格式要求较严格