解决@value获取不到yaml数组的问题

一、yaml中的配置如下:

andawell:
  permission:
    allPermissionSign: [["航设公司","军品销售中心"],["民用航空事业部","民航销售中心"],["航设公司","军品销售中心"],["航设公司","军品销售中心"]]
    orgName: 
     - 航设公司
     - 民用航空事业部
     - 航设公司
     - 航设公司
    activeOrg: 1

二、获取:

1.整数使用@Value可正常获取:

    @Value("${andawell.permission.activeOrg}")
    int permissionActiveOrg;
  1. 获取数组/列表使用@Value时,无法正常获取:
    @Value("${andawell.permission.allPermissionSign}")
    List<List<string>>  allPermissionSign;

三、解决方案:

解决方案1: 对于非嵌套列表:如:swl :[a,b,c,d],
需要更改成:swl: a,b,c,d的形式;
@Value(“${swl}”) 或者 @Value("#{'${swl}'.split(',')}")

解决方案2: 对于嵌套列表等复杂的配置:如:

allPermissionSign: [["航设公司","军品销售中心"],["民用航空事业部","民航销售中心"],
["航设公司","军品销售中心"],["航设公司","军品销售中心"]]

采用@ConfigurationProperties(prefix = "andawell.permission")获取:

@Component
@Data
@ConfigurationProperties(prefix = "andawell.permission")
public class DataSyncConfig {

    /**
     * 各个组织中具有所有权限的中心名称,依次为【航设、民航、智能、信息】下的所有权限的部门
     */
    List<List<String>> allPermissionSign;

    /**
     * 各个组织的全称,依次为【航设、民航、智能、信息】
     */
    List<String> orgName;

    /**
     * 生效的组织,【1航设、2民航、3智能、4信息】
     */
    Integer activeOrg;
}

你可能感兴趣的:(windows,python,开发语言)