我希望使用弹簧执行器https://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/#env公开spring配置属性的当前值。
GET /actuator/env/{props}
我有两项服务:
service
云配置有两个配置:maximum-upload-allow = 1M和file-type = png
应用程序服务从云-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;
}GET /actuator/env/maximum-upload-allow (1M)和GET /actuator/env/file-type (png)获得我的配置
现在当我更新配置值maximum-upload-allow = 2M和file-type = jpg时
然后我通过调用总线刷新https://cloud.spring.io/spring-cloud-static/spring-cloud-bus/2.1.4.RELEASE/multi/multi__bus_endpoints.html来刷新范围。
我希望看到使用弹簧执行器的配置如下:
GET /actuator/env/maximum-upload-allow => 1M (因为没有刷新范围)
GET /actuator/env/file-type => jpg (我标记为复习镜)
但是实际上,弹簧执行器返回两个新值(2M和jpg)。
问:我如何获得我的运行时值的最大上传-允许是1米(当前的值,因为这里没有RefreshScope?
-更新
@Configuration @Setter @Getter @ConfigurationProperties
public class ApplicationConfigurationProperty {
@Value("${maximum-upload-allow}")
private String maximumImageSize;
}此配置值在没有@RefreshScope注释的情况下刷新。
我认为这里提到的这些行为是正确的,https://cloud.spring.io/spring-cloud-static/spring-cloud-bus/2.1.4.RELEASE/multi/multi__bus_endpoints.html
提前谢谢你。
发布于 2021-03-04 19:51:23
我发现一个简单的解决方案是实现一个新的执行器端点,即load @RefreshScope,并使用反射来读取bean的属性
https://stackoverflow.com/questions/66455893
复制相似问题