zoukankan      html  css  js  c++  java
  • Java第四十五天,SpringBoot框架系列,SpringBoot基础(四)

    配置文件

    1.SpringBoot 支持的配置文件

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

    SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件

    2.YML 配置文件

    (1)定义

    YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入比传统的xml方式更加简洁。YML文件的扩展名可以使用.yml或者.yaml

    (2)格式

    1.普通
    key: value
    
    2.对象
    object:
        key1: value1
        key2: value2
        ......
    
    或
    
    object: {key1: value1,key2: value2,......}
    
    3.字符串集合
    objects:
        - obj1
        - obj2
        ......
    
    或
    
    object: [obj1,obj2,......]
    
    4.对象集合
    objects:
        - obj1_lab1: value1
          obj1_lab2: value2
        - obj2_lab1: value1
          obj2_lab2: value2
        ......
    
    或
    
    object: [{lab1: value1,lab2: value2},{lab1: value1,lab2: value2},......]
    
    5.Map(同对象)
    objects:
        - obj1_key1: value1
          obj1_key2: value2
        - obj2_key1: value1
          obj2_key2: value2
        ......
    
    或
    
    object: [{key1: value1,key2: value2},{key1: value1,key2: value2},......]
    
    
    
    // 语法类似于 python 利用缩进关系(空格)来代表层级关系

    (3)举例

    1.普通数据(注意,: 后面有空格)
    name: [姓名]
    
    2.对象
    person:
        name: [姓名]
        age: [年龄]
    
        
    3.对象
    person: {name: [姓名],age: [年龄]}
    
    
    规范
    1.层级关系之间用 空格 隔开,至于几个空格,并没有严格要求,行业习惯用 tab 隔开
    2.key 与 value 之间,需要在 : 后面加空格
    3.配置文件如果存在相同配置 key 的话,会存在覆盖关系;因此可以利用自定义配置文件修改(覆盖)默认配置信息
    4.无论哪个字段不要写成驼峰式,最好写成下划线式

    3.读取配置文件中的信息

    1.通过 @value 注解

    @Value("${变量名}")
    @Value("${对象名.变量名}")

    2.使用注解@ConfigurationProperties映射

    通过注解@ConfigurationProperties(prefix="配置文件中的key的对象")可以将配置文件中的配置自动与实体进行映射

    (1)要求

    • 使用@ConfigurationProperties方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供set方法才可以
    • 添加映射器依赖(可有可无,但在配置 yml 配置文件的时候,会给出对应提示)
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
    </dependency>

    (2)举例

    person-one:
      name: xiaohong
      age: 20
    
    @RestController
    @RequestMapping("/test")
    @ConfigurationProperties(prefix = "person-one")
    public class TestController {
    
        private String name;
        private String age;
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setAge(String age) {
            this.age = age;
        }
    
        @RequestMapping("/name")
        public String say() {
            return name + ":" + age;
        }
    }
    
    作者:蓝月

    -------------------------------------------

    个性签名:能我之人何其多,戒骄戒躁,脚踏实地地走好每一步

  • 相关阅读:
    快乐前端-图片预加载
    浅谈canvas绘画王者荣耀--雷达图
    浅谈CSS3动画的凌波微步--steps()
    车大棒浅谈jQuery源码(二)
    车大棒浅谈jQuery源码(一)
    车大棒浅谈for循环+canvas实现黑客帝国矩形阵
    浅谈JavaScript 函数作用域当中的“提升”现象
    清除浮动塌陷的4种经典套路
    可以看电影的微信公众号
    Mac安装protobuf编译Java
  • 原文地址:https://www.cnblogs.com/viplanyue/p/13573706.html
Copyright © 2011-2022 走看看