主要分为.properties和.yml/.yaml两种类型,效果相同,.properties就是键值对,如:
以下主要关于.yml/.yaml配置文件的介绍。
相对于xml文件,yml文件更加简洁(没有过多标签),也更加容易阅读,可以被多种编程语言导入。扩展名为.yml或者.yaml。
注:SpringBoot配置的读取配置文件的顺序是:
换句话说,.properties文件的优先级就会比.yml文件更高,后读取的.properties文件中的配置内容会覆盖先读取的.yml文件的配置内容,但一般我们只需要在一种文件中配置即可。
yml文件中主要是通过空格和回车来控制层级关系。
1、配置普通数据
2、配置对象数据
person: name: zhangsan age: 18 addr: beijingserver: port: 8081或
user: {username: admin,password: 123456}一般第一种较常用。
3、配置数组或集合数据
普通字符串:
对象数据:
student: - name: jack age: 18 - name: lucy age: 174、map配置,与对象配置语法一样
map: key1: value1 key2: value2 三、从yml配置文件中获取信息1、通过@Value注解获取:
@Controllerpublic class BootController1 { @Value("${name}") private String name;// 获取普通数据 @Value("${person.age}") private String age;// 获取对象数据 @RequestMapping("/testyml") @ResponseBody public String testYml() { return "name: " + name + ",age: " + age; }}2、通过@ConfigurationProperties注解获取对象信息:
//获取对象数据的第二种方式@Controller//这里前缀写person是因为在yml文件中对象名为person,//而name和age都是person中的属性@ConfigurationProperties(prefix = "person")public class TestYmlController2 { private String name; private String age; @RequestMapping("/testyml2") @ResponseBody public String testYml() { return "name: " + name + ",age: " + age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; }}注:使用@ConfigurationProperties注解IDEA会报警告,其实不会影响项目运行,但是我们可以通过加:
<!--@ConfigurationProperties注解的执行器的配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>来解决警告。另外,我们添加这个包后在配置文件中就会有提示功能了。