当前位置: 首页 > 知识库问答 >
问题:

列出属性的最终列表-Spring Cloud Config Server

利永年
2023-03-14

Spring Cloud Config Server接受多个配置文件,并在我访问应用程序的 /envendpoint时返回所有配置文件的属性。响应列出了每个配置文件特定的属性。如果相同的属性存在于2个不同的属性文件中,则最后定义的属性优先。是否有办法获取应用程序将使用的属性键和值的最终列表?

共有3个答案

仲孙默
2023-03-14

这似乎是Spring框架有意的限制。

请参阅此处

你可以破解它并注入PropertySources接口,然后遍历所有单独的PropertySource对象,但是你必须知道你在寻找什么属性。

白晋鹏
2023-03-14
import java.util.properties;

import org.springframework.core.env.AbstractEnvironment;
import org.springframework.core.env.CompositePropertySource;
import org.springframework.core.env.Environment;

public class MyClass {
  @Autowired
  private Environment    env;

  Properties getProperties() {
    Properties props = new Properties();
    CompositePropertySource bootstrapProperties = (CompositePropertySource)  ((AbstractEnvironment) env).getPropertySources().get("bootstrapProperties");
    for (String propertyName : bootstrapProperties.getPropertyNames()) {
      props.put(propertyName, bootstrapProperties.getProperty(propertyName));
    }

    return props;
  }

}

抱歉......这是我第一次在这里回答问题。我创建了一个帐户专门来回答这个问题,因为我在研究同一个问题时遇到了它。我找到了一个对我有用的解决方案,并决定分享它。

下面是我对所做的解释:

>

  • 我初始化一个新的“属性”对象(可以是HashMap或您想要的任何其他对象)

    我查找“bootstrapProperties”的属性源,它是一个 CompositePropertySource 对象。此属性源包含已加载的所有应用程序属性。

    我遍历从CompositePropertySource对象上的“getPropertyNames”方法返回的所有属性名,并创建一个新的属性条目。

    我返回属性对象。

  • 阎璞瑜
    2023-03-14

    对于云配置客户端应用程序

    我尝试了不同的方法,发现了以下内容(意外地):

    GET /env/.*返回配置属性的完整列表

    对于云配置服务器应用程序

    事实证明,这已经实现,但没有很好的文档记录。您只需根据以下模式请求<code>json、<code>yml或<code>属性:

    /{application}-{profile}.{ext}
    /{label}/{application}-{profile}.{ext}
    
     类似资料:
    • 问题内容: 我是Python的新手,我刚刚发现了属性。当我在一个简单的变量上尝试它时,它工作得很好,但是我无法使其在列表上工作。当执行下面的代码时,它将调用两次getter而不是setter。我知道在我的示例中,该属性没有附加值,但只是为了简化。 有人知道我在做什么错吗? 问题答案: 仅当您直接获取或设置属性时,才使用setter / getter: 如果您修改属性中的元素,则会获得该属性,然后设

    • 问题内容: 当存在时,是否有可能获得全部列表?是否为此准备了电话,还是我必须编写一个foreach循环,如: 问题答案: Java 8及更高版本: 如果需要确保得到结果,则必须将最后一行更改为: Java 7及以下版本: Java 8之前的标准集合API不支持这种转换。您必须编写一个循环(或将其包装在您自己的“地图”函数中),除非您使用一些更高级的集合API /扩展。 (您的Java代码段中的行正

    • 直接上代码看注释: <?php namespace Yurun\Util\YurunHttp; /** * 所有属性的常量定义 * * PRIVATE_ 开头的为内部属性,请勿使用 */ abstract class Attributes { /** * 客户端参数 */ const OPTIONS = 'options'; /**

    • 我正在尝试过滤scala中对象列表的列表属性。例如: 用java定义的类 我的过滤器函数返回字符串列表而不是结果列表 UPDATE我想取回listOf中的所有结果,其中每个结果的名称属性被过滤。

    • 问题内容: 似乎可以设置大量的UI属性 是否可以设置所有键的列表? 问题答案: 它取决于Java实现。这是您可以运行以查看所有可用属性及其当前值的简单代码。

    • 问题内容: 我的ViewValue类定义如下: 在我的代码中,我需要将ViewValue实例列表转换为包含来自相应ViewValue的id字段值的列表。 我用foreach循环来做: } 有没有更好的方法来解决这个问题? 问题答案: 编辑:此答案基于以下想法:您需要对代码中其他位置的不同实体和不同属性执行类似的操作。如果您 只需 要按ID将ViewValues列表转换为Longs列表,则请坚持使用