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);
        }
    }
    

    参考资料

    喜欢关注一下,不喜欢点评一下
  • 相关阅读:
    javascript 作用域、预解析、变量提升
    用最简洁代码实现indexOf方法
    JavaScript 中的 RegExp 对象
    不能使用任何循环控制语句和迭代器的情况下实现一个0到1000的数组赋值
    IDEA搭建SSM框架教程 从零开始 SSM+Maven框架搭建教程
    Redis缓存 集成SSM框架
    JavaWeb拦截器
    log4j.properties配置文件
    C#WinForm,TCP调试工具
    C#如何实现控件移动拖动
  • 原文地址:https://www.cnblogs.com/chengmuyu/p/15562320.html
Copyright © 2011-2022 走看看