开发者

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

目录
  • 一、yaml中的配置
  • 二、获取
  • 三、解决方案
    • 解决方案1
    • 解决方案2
  • 总结

    一、yaml中的配置

    如下:

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

    二、获取

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

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

    三、解决方案

    解决方案1

    对于非嵌套列表:如:swl :[a,b,c,d],

    需要更改成:swl: a,b,c,d的形式;

    @Value(“${swl}”) 或者 @Value("#{'${swljs}'.split(',')}")

    解决方案2

    对于嵌套列表等复杂的配置:如:

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

    采用

    @ConfigurationProperties(prefix = "andawell.permission")

    获取:

    @Component
    @Data
    @ConfigurationProperties(prefix = "andawell.permission")
    public clas编程s DataSyncConfig {
    
        /**
         * 各个组织中具有所有权限的中心名称,依次为【航设、民航、智能、信息】下的所有权限的部门
         */
        List<List<String>> allPermissionSign;
    
        /**
         * 各个组织的全称,依次为【航设、民航、智能、信息】
         */
        List<String> orgName;
    
        /**
         * 生效的组织,【1航设、2民航、3智能、4信息】
         */
        Integer activeOrg;
    }

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜