美文网首页
spring 根据配置项的前缀获取值

spring 根据配置项的前缀获取值

作者: 把爱放下会走更远 | 来源:发表于2019-01-10 15:56 被阅读40次

有时候我们不知道配置项的key是什么,或者我们不在意怎么去配置,最后都希望能够把值取出来;spring的上下文中可以获取Environment,然后getProperty来取得值,但是我们必须指定key;但是一想里面肯定也用一个map结构来存的,所以肯定可以全量拿出来;下面是我的一个例子,我想根据执行前缀,拿出配置项是这个前缀的所有配置项;

 Environment env = applicationContext.getEnvironment();
        AbstractEnvironment aEnv = (AbstractEnvironment) env;
        MutablePropertySources propertySources = aEnv.getPropertySources();
        propertySources.forEach(propertySource -> {
            if (propertySource instanceof MapPropertySource) {
                MapPropertySource mps = (MapPropertySource) propertySource;
                Set<String> keys = mps.getSource().keySet();
                for (String key : keys) {
                    if (key.startsWith(cfgPrefix)) {
                        topicSet.add(String.valueOf(mps.getProperty(key)));
                    }
                }
            }
        });

如果有其他的需求的,可以根据这个例子做变化即可

相关文章

网友评论

      本文标题:spring 根据配置项的前缀获取值

      本文链接:https://www.haomeiwen.com/subject/coyarqtx.html