zoukankan      html  css  js  c++  java
  • spring PropertySource properties 文件配置

    • bean定义引入配置文件

    PropertySource注解不支持YAML files.所以只能使用properties文件

    @Configuration
    @PropertySource(value = {"classpath:permission/resource-type.properties"})
    @ConfigurationProperties("permission")
    @Data
    public class DataPermissionType {
        private String model;
        private List<Param> param;
        private Param tenant;
        private Map<String,String> map;
        private int num;
    
        @Data
        public static class Param {
            private String name;
            private List<String> value;
    
            public Param() {
            }
    
            public Param(String name, List<String> value) {
                this.name = name;
                this.value = value;
            }
        }
    }
    
    • 配置文件配置
    permission.param[0].name=TENANT
    permission.param[0].value[0]=tenant
    permission.param[1].name=MODULE
    permission.param[1].value[0]=oneservice
    permission.tenant.name=TENANT
    permission.tenant.value[0]=tenant
    permission.map.key1=value1
    permission.map.key2=value2
    permission.num=1
    permission.model=TENANT/MODULE/PROJECT/DATA
    
    • 输出结果
      DataPermissionType(model=TENANT/MODULE/PROJECT/DATA, param=[DataPermissionType.Param(name=TENANT, value=[tenant]), DataPermissionType.Param(name=MODULE, value=[oneservice])], tenant=DataPermissionType.Param(name=TENANT, value=[tenant]), map={key2=value2, key1=value1}, num=1)
    
    
    • @PropertySource支持yaml格式文件
    public class YamlPropertySourceFactory implements PropertySourceFactory {
    
        @Override
        public PropertySource<?> createPropertySource(String name, EncodedResource encodedResource) 
          throws IOException {
            YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean();
            factory.setResources(encodedResource.getResource());
    
            Properties properties = factory.getObject();
    
            return new PropertiesPropertySource(encodedResource.getResource().getFilename(), properties);
        }
    }
    

    参考资料

    喜欢关注一下,不喜欢点评一下
  • 相关阅读:
    Ajax
    对于本地上关联了远程的git上的项目,删除现有的关联,然后关联新创建的git项目
    UNI-APP_uni-simple-router的快速上手(路由,nui路由拦截)
    js之观察者模式和发布订阅模式区别
    Vue CLI 3.0脚手架如何在本地配置mock数据
    es6解构赋值和扩展运算符
    js Array数组详细操作方法及解析合集
    list排序
    java常用的object数据处理
    java 读写 txt 文件
  • 原文地址:https://www.cnblogs.com/chengmuyu/p/15562320.html
Copyright © 2011-2022 走看看