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

当尝试从多个源获取属性时,如何从Spring Cloud Config Server获取稳定的属性集

梁泰
2023-03-14

我需要从Spring云配置服务器获取一组稳定的属性。示例:我配置了多个,如spring.profiles.active=jdbc、git。因此,根据优先级,云配置服务器从JDBC获取属性,即从属性表中获取属性,稍后它将从git存储库中获取属性。org.springframework.cloud.config.server.environment.Composite环境存储库#findOne(java.lang.String、java.lang.String、java.lang.String、boolean)方法正在合并到一个包含List属性源的环境对象中。在这种情况下,列表是多个属性源对象。问题声明:我在属性表(JDBC后端)中有一个名为app.scheduler.timeout=9000的属性,并且相同的属性也存在于git-profile.properties文件中app.scheduler.timeout=9001。如果您看到最终的环境对象,它将在两个属性源中都具有属性。我知道合并将通过准备引导属性源在云配置客户端完成。

我们有没有办法从Spring云配置服务器本身准备或获得一组稳定的propertySource?i、 e,列表中的单个propertySource对象。

注意:在上面的示例中,我只提到了一个属性,但我希望对发送到云配置客户端的所有属性进行合并。

共有1个答案

吴安和
2023-03-14

感谢@ryanjbaxter提供解决方案。CustomComposite环境存储库应该扩展Componsite环境存储库。

然后在配置类中添加AutoConfigureBefore(EnvironmentRepositoryConfiguration.class)。

您的bean应该定义如下

@Bean
@Primary
@ConditionalOnMissingBean(SearchPathLocator.class)
public CompositeEnvironmentRepository customCompositeEnvironmentRepository() {
    return new CustomCompositeEnvironmentRepository(this.environmentRepos, properties.isFailOnCompositeError());
}

完整的解决方案位于以下GitHub位置:link

 类似资料:
  • 我想从我的TableCell中的模型中获取一个属性,因此我可以根据该属性对单元格进行修改,让我们看一下以下示例: 我有这样一个模型: 这个模型只是我所拥有的模型的一个模拟,我有几个模型有两个或更多的

  • 我有一个包含如下值的对象 这些都在变量autossuggest中。现在我只想获得值 谢谢你的小费

  • 我正在尝试从我的OpenStreetMap boundaries postgis服务器中获取真实的geo JSON[For you:< code > psql-t-h { base64(MTG 1 ljixos 4x mziumje 5)}-U boundaries-d boundaries ] 构建JSON工程: 从 al4 中选择 jsonb_build_object( 'type', 'Fe

  • 但是,我只能访问有关用户的基本信息,例如GivenName和Surname。我在Azure门户中创建了名为“extension_e3f9d0....”的扩展属性。 问题是,我不知道如何访问属性,一旦用户登录。当我调用Postman中的API时,可以检索这些自定义属性,如下所示: https://graph.microsoft.com/v1.0/users/[user@whatever]?$sele

  • 问题内容: 我正在使用SSH2。当我尝试通过设置属性时,这是正确的。但是,当我尝试使用获得相同的属性时,我什么也没有。 为什么?他们不一样吗? 当我使用时,我得到了这些: 似乎在休眠状态下进行会话。为什么? 问题答案: 是的,它们是不同的,在scriptlet中,您使用http会话隐式对象;在struts标签属性中,您引用通过OGNL检索的struts会话映射对象。您一无所获,只是因为它们与众不同

  • 我试图从Woocommerce的Wordpress网站上获取产品数据。我使用下面的代码获取特定类别产品的名称和缩略图。 这在获取“工具”类别中产品的名称和图像方面效果很好,但我想获取每个产品的权重。 产品重量在WordPress仪表板中设置为产品属性。 如何获取产品的这些数据?我似乎找不到访问这些的功能。