首页 > 编程知识 正文

springboot配置文件优先级顺序,springboot配置文件执行顺序

时间:2023-05-06 15:01:43 阅读:198631 作者:3920

主要分为.properties和.yml/.yaml两种类型,效果相同,.properties就是键值对,如:

以下主要关于.yml/.yaml配置文件的介绍。

一、yml配置文件简介

相对于xml文件,yml文件更加简洁(没有过多标签),也更加容易阅读,可以被多种编程语言导入。扩展名为.yml或者.yaml。
注:SpringBoot配置的读取配置文件的顺序是:

换句话说,.properties文件的优先级就会比.yml文件更高,后读取的.properties文件中的配置内容会覆盖先读取的.yml文件的配置内容,但一般我们只需要在一种文件中配置即可。

二、yml配置文件语法

yml文件中主要是通过空格和回车来控制层级关系。
1、配置普通数据

name: zhangsan

2、配置对象数据

person: name: zhangsan age: 18 addr: beijingserver: port: 8081

user: {username: admin,password: 123456}

一般第一种较常用。
3、配置数组或集合数据
普通字符串:

city: - beijing - tianjin - shanghai

对象数据:

student: - name: jack age: 18 - name: lucy age: 17

4、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>

来解决警告。另外,我们添加这个包后在配置文件中就会有提示功能了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。