yml文件数组嵌套参数定义
使用spring boot开发项目,参数配置很简单,但是今天遇到一个问题,父子孙三级关系,数组包含数组,这种参数定义应该怎么写哪?下面先看一下我的父子孙三级配置类的参数定义
父(OAuth2Properties)
package org.security.core.properties;
import lombok.Data;
@Data
public class OAuth2Properties {/*** oauth定义的应用信息数组*/private OAuth2ClientProperties[] clients = {};
}
包含多个OAuth2ClientProperties对象。
子(OAuth2ClientProperties)
package org.security.core.properties;
import lombok.Data;
@Data
public class OAuth2ClientProperties {/*** 应用id*/private String clientId;/*** 密码*/private String clientSecret;/*** token过期时间*/private int accessTokenValiditySeconds;/*** 支持类型*/private String[] authorizedGrantTypes;/*** 权限类型*/private String[] scopes;
}
孙级就不写了,子级里面有数组类型的参数
下面看一下我的application.yml配置文件的配置信息
o-auth2:clients:- client-id: petclient-secret: petsecretaccess-token-validity-seconds: 360000authorized-grant-types:- refresh_token- password- implicitscopes:- all- read- write- client-id: pet1client-secret: petsecret1access-token-validity-seconds: 3600authorized-grant-types:- refresh_token- password- implicitscopes:- all- read
既然遇到这个问题,那么定义参数指向这些配置应该是没问题的(默认你可以指到o-auth2那一级),下面解释一下,定义数组需要用到的关键标识符是-,一个-代表是一个新的对象!!!所以上图中的参数意味着
clients长度为2
clients[0].client-id=pet
clients[0].client-secret=petsecret
clients[0].access-token-validity-seconds=360000
clients[0].authorized-grant-types长度为3
clients[0].scopes长度为3clients[0].client-id=pet1
clients[0].client-secret=petsecret1
clients[0].access-token-validity-seconds=3600
clients[0].authorized-grant-types长度为3
clients[0].scopes长度为2
为了验证正确性,我在系统编译时使用这些参数的地方打了断点,打印这些数据,以下为日志信息

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
