龙哥网

龙哥网

基于springBoot配置文件properties和yml中数组的写法_java(springboot配置文件yml和properties区别)
2022-03-01

目录
  • springBoot配置文件properties和yml数组写法
    • 这两种方法你选择哪种都可以
  • .properties和.yml的写法区别

    springBoot配置文件properties和yml数组写法

    这里介绍一下springBoot中的两种文件配置方式中数组的使用,也就是集合。

    以下是我springBoot中使用的 application.properties 文件

    其实很好理解,我的configs是一个集合,configs[0].appid代表我配置的第一个对象中的appid的值

    miniapp.configs[0].appid = 111111
    miniapp.configs[0].secret= 222222
    miniapp.configs[0].token = 333333
    miniapp.configs[0].aesKey = 444444
    miniapp.configs[0].msgDataFormat = JSON
     
    miniapp.configs[1].appid = 111
    miniapp.configs[1].secret = 222
    miniapp.configs[1].token = 333
    miniapp.configs[1].aesKey = 444
    miniapp.configs[1].msgDataFormat = JSON

    这个是使用application.yml的方式,因为YAML 本身支持 list 类型,所以可以在 application.yml 文件中添加:

    yml如果配置普通字符串

    miniapp:
        configs:
            - appid: 111
              secret: 222
              token: 333
              aesKey: 444
              msgDataFormat: JSON
            - appid: 111
              secret: 222
              token: 333
              aesKey: 444
              msgDataFormat: JSON

    这两种方法你选择哪种都可以

    下面展示类代码的写法:

    package com.platform.miniprogram; 
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component; 
    import java.util.List;
     
    /**
     * @Classname WxMaProperties
     * @Description TODO
     * @Date 2020/10/10 10:48
     * @Created by lyc
     */
    @Data
    @ConfigurationProperties(prefix = "miniapp")
    @Component
    public class WxMaProperties { 
        private List<Config> configs; 
        @Data
        public static class Config {
            /**
             * 设置微信小程序的appid
             */
            private String appid;
     
            /**
             * 设置微信小程序的Secret
             */
            private String secret;
     
            /**
             * 设置微信小程序消息服务器配置的token
             */
            private String token;
     
            /**
             * 设置微信小程序消息服务器配置的EncodingAESKey
             */
            private String aesKey;
     
            /**
             * 消息格式,XML或者JSON
             */
            private String msgDataFormat;
        } 
    }

    解释:

    @Data就是省略了get/set方法你可以直接删掉写成get/set

    @ConfigurationProperties(prefix = "miniapp")

    prefix 这个前缀一定要写对

    configs是集合的名字,要和配置表中的信息一致。这样基本就可以了。

    .properties和.yml的写法区别

    例如:redis配置的properties或yml文件,如下:

    spring.redis.cluster.nodes[0]=192.168.0.1:6379  
    spring.redis.cluster.nodes[1]=192.168.0.2:6379  

    spring:  
       redis:  
          cluster:  
             nodes:  
                - 192.168.0.1:6379  
                - 192.168.0.2:6379  

    示例:2

    environments:
        dev:
            url: http://dev.bar.com
            name: Developer Setup
        prod:
            url: http://foo.bar.com
            name: My Cool App

    上面的YAML文档会被转化到下面的属性中:

    environments.dev.url=http://dev.bar.com
    environments.dev.name=Developer Setup
    environments.prod.url=http://foo.bar.com
    environments.prod.name=My Cool App

    YAML列表被表示成使用[index]间接引用作为属性keys的形式,例如下面的YAML:

    my:
       servers:
     - dev.bar.com
     - foo.bar.com

    将会转化到下面的属性中:

    my.servers[0]=dev.bar.com
    my.servers[1]=foo.bar.com
    免责声明
    本站部分资源来源于互联网 如有侵权 请联系站长删除
    龙哥网是优质的互联网科技创业资源_行业项目分享_网络知识引流变现方法的平台为广大网友提供学习互联网相关知识_内容变现的方法。