我有一个属性类如下:
@Component
@ConfigurationProperties(prefix = "gateway")
public class GatewayConfigurationProperties {
private Map<String, String> publisherMessageProperties;
public Map<String, String> getPublisherMessageProperties() {
return publisherMessageProperties;
}
public void setPublisherMessageProperties(Map<String, String> publisherMessageProperties) {
this.publisherMessageProperties = publisherMessageProperties;
}
}
我正在使用构造函数注入将上述组件连接到另一个 @component 类中。
@Component
public class EventListener {
private GatewayConfigurationProperties gatewayProperties;
public EventListener(GatewayConfigurationProperties gatewayProperties) {
this.gatewayProperties = gatewayProperties;
}
public void onMessage(Message message) {
System.out.println(gatewayProperties.getPublisherMessageProperties());
}
该应用程序是一个配置客户端,其属性也存储在 gitlab 中。GatewayConfigurationProperties 中的属性值在 gitlab 中更改,我正在调用执行器的 /actuator/refresh 端点。我可以在日志中看到端点调用,但是 gitlab 中属性的更改没有反映出来。在 @component 类或属性类上是否还有其他事情要做才能进行刷新。当我阅读文档时,我可以看到用 @ConfigurationProperties 注释的类将用执行器刷新,但不知何故对我来说并没有发生