配置文件的介绍
配置文件当中记录了许多重要的配置信息,例如:
- 数据库的连接信息(用户的账户与密码)
- 项目的启动端口
- 第三方系统的调用密匙
- 用于记录问题产生的日志
在spring框架中一些特定的框架会自动调用配置文件中的配置信息来运用.
配置文件中的属性也起到了类似全局变量的作用.
对于一个项目,可以准备多种配置文件方便自由调用来应对不同的情况.
放置在resources目录下
配置文件的格式
Spring Boot的配置文件的格式主要有两种:
- .properties(spring boot默认)
- .yml
properties与yml都是配置文件,类似于同一件实物来说,properties是旧版的而yml是新版的.
properties与yml的优先级
properties与yml可以出现在同一个项目当中,还是建议在一个项目下使用同一种类型的配置文件.
但properties的优先级会更高,项目先加载properties中的配置,在这之后才去加载yml的.
下面来示范一下.
①在同一个项目中分别放置properties与yml的配置文件
②分别在两种配置文件中配置同一属性的信息
yml配置的端口号为:666
properties配置的端口号为:123
③在类中调用并打印查看结果
观察得到,打印的端口号为123,即是properties配置文件中的信息.
注意,虽然properties配置文件在SpringBoot的优先级更高.但并不表示不会载入yml的信息噢,只是在同一个属性上优先使用properties中的信息.
properties配置文件的说明
properties是配置文件的早期文件类型,是spring boot的默认配置文件类型
基本语法
在properties是以键值对的方式来赋值,其中key与value是以"="来连接.
server.port = 123
#使用"#"在配置文件中进行注释
读取配置文件信息
在项目中想实现配置文件中内容的读取,可以使用@Value注解来实现
其中@Value注解的格式为${}
@Value("${server.port}")
缺点分析
当在配置相近的内容时,会额外的产生冗余的信息.
yml配置文件的说明
yml是yaml的缩写,全称为:Yet Another Markup Language(另一种标记语言).
对于properties来说,yml支持了更多的编程语言.还支持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件.
基本语法
yml的语法与JSON差不多,但yml使用":" + "(空格)"的形式组合连接key与value,其中的空格不要省略噢.
server.port: 666
对比:
使用
①与properties对比
左边为yml,右边为properties.
可以观察到yml中的书写更为简便一些.
②配置数据类型
yml还可以配置数据类型以及null(properties不可配置数据类型噢~)
③配置对象
写法一:
写法二:
配置文件中对象的读取
对于yml中的对象就不能使用@Value来读取了
而是使用@ConfigurationProperties.
@ConfigurationProperties(prefix = "student1")//student1为yml中对象名称
@Component
public class Student {
private int age;
private String name;
private String id;
//其中getter与setter方法不能省略
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
读取
yml的基本读取与properties的@Value注解读取一直,特殊的对象读取也说明,此处不再赘述.