美文网首页
SpringBoot 的配置文件

SpringBoot 的配置文件

作者: Edwinpanzzz | 来源:发表于2019-11-27 15:48 被阅读0次

    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;
        }
    }
    

    相关文章

      网友评论

          本文标题:SpringBoot 的配置文件

          本文链接:https://www.haomeiwen.com/subject/ckwpwctx.html