person

SpringBoot 配置文件类型

SpringBoot 配置文件的类型和作用

SpringBoot 是基于约定的,所以很多配置都有默认值,如果想使用自己的配置替换默认配置的话,就可以使用 application.properties 或者 application.yml (或 application.yaml) 进行配置。

SpringBoot 默认会从 resources 目录下加载 application.properties 或者 application.yml (或 application.yaml) 文件,因 properties 文件常用, 下面对 yml 文件进行讲解。

application.yml 配置文件

yml 配置文件简介

YML 文件格式是 YAML (YAML Aint Markup Language) 编写的文件格式,YAML 是一种直观的能够被计算机识别的数据序列化格式,并且易于人们阅读,容易和脚本语言交互,可以支持 YAML 库的不同编程语言导入,YAML 是以数据为核心的,比传统的 XML 方式更加简洁。

YML 文件的扩展名可以使用 .yml 或者 .yaml

yml 配置文件的语法

配置普通数据

  • 示例代码

    name: Edwinpanzzz
  • 注意:value 之前有一个空格。

配置对象数据

  • 示例代码

    # 配置服务端口
    server:
        port: 8080
    # 行内配置
    server: {port: 8080}

配置数据和集合

  • 数组示例代码

    # 普通字符串
    city:
    - beijing
    - chongqing
    # 行内配置
    city: [beijing, chongqing]
    # 对象
    student:
    - name: tom
    age: 18
    - name: jack
    age: 20
    # 行内配置
    student: [{name: tom, age: 18}, {name: jack, age: 20}]
  • map 数据代码示例

    map:
    key1: value1
    key1: value2

配置文件与配置类的属性映射方式

使用注解 @Value 映射

@Controller
public class HelloController {

    @Value("${person.name}")
    private String name;
    @Value("${person.age}")
    private Integer age;

    @RequestMapping("/hello")
    @ResponseBody
    public String sayHello() {
        return "name: " + name + ", age: " + age;
    }
}

使用 @ConfigurationProperties 映射数据

@Controller
// 配置对象前缀
@ConfigurationProperties(prefix = "person")
public class HelloController {

    private String name;
    private Integer age;

    // 提供 get 和 set 方法 
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @RequestMapping("/hello")
    @ResponseBody
    public String sayHello() {
        return "name: " + name + ", age: " + age;
    }
}

新评论