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

Spring cloud-refresh scope-获取spring-bean配置属性的运行时值

芮祺
2023-03-14

我想使用spring-actuator https://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/#env公开spring-bean配置属性的当前值

获取/执行器/环境/{道具}

    null

云配置有两种配置:maximal-upload-allow=1mfile-type=png

应用程序服务从cloud-config服务加载这些配置

比如:

@Configuration @Getter
public class ApplicationConfigurationProperty {
  @Value("${maximum-upload-allow}")
  private String maximumImageSize;
}

@Configuration  @RefreshScope  @Getter
public class FileConfigurationProperty {
  @Value("${file-type}")
  private String fileType;
}
    null

get/actuator/env/maximal-upload-allow=>1m(因为没有refreshscope)

get/actuator/env/file-type=>jpg(我标记为refreshscope)

但实际上,Spring执行器返回两个新值(2M和jpg)

@Configuration @Setter @Getter @ConfigurationProperties
public class ApplicationConfigurationProperty {
  @Value("${maximum-upload-allow}")
  private String maximumImageSize;
}

我认为这些是正确的行为,这里提到https://cloud.spring.io/spring-cloud-static/spring-cloud-bus/2.1.4.release/multi/multi__bus_endpoints.html

提前谢谢你。

共有1个答案

董嘉祯
2023-03-14

我发现一个简单的解决方案是实现一个新的执行器endpoint,它是load@refreshScope,并使用反射来读取bean的属性

 类似资料:
  • 我是Spring的新手。我有下面的Person bean,其中包含姓名、地址和年龄作为属性。现在我想在我的自定义BeanFactoryPostProcess中向Person bean添加名为性别的新属性。我的人bean实现了属性访问器。 XML配置文件 自定义BeanFactoryPostProcess 人员类别 客户端程序 如果我访问性别我得到null 请让我知道如何动态设置和获取属性。

  • 我正在使用spring cloud config在运行时更改属性值,而无需重新启动应用程序。 我有一个回购协议,它有不同的配置文件,根据配置文件,我有多个应用程序运行一个回购协议。 我有一个带有@Profile注释的服务类, 我有一个应用程序更改提要属性文件和一个应用程序测试文件,其中(应用程序测试)在云配置存储库中有这个feed.toggle属性值。 application.properties

  • 问题内容: 我在jpa中使用了hibernate模式,并且使用persistence.xml进行了配置。是否可以从Web应用程序获取hibernate连接属性? 谢谢。 问题答案: 可能并非没有反射,而是依靠Hibernate在将来不会破坏您的代码。您需要从SessionFactory获取属性,但是它不是公开的,因此您必须通过反射找到Field,然后使用field.setAccessible获取对

  • 我有一个Spring配置类,我正在使用它从属性文件中读取并创建bean。 在xml文件中 我能够设置和属性,但无法将属性设置为,因为我们需要注入及其。请让我知道如何在方法中注入bean。

  • 我希望将concur严格用作配置源。我正在使用spring cloud Consor配置来获取配置。我正在使用git2consul将文件加载到Consor并读取它们。根据spring云文档,我在构建中添加了以下内容。格拉德尔 并在我的application.properties 我面临的问题是,预期的属性没有加载到ConfigurationProperties bean中。在ConsultProp