次のようなプロパティ クラスがあります。
@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 で注釈が付けられたクラスがアクチュエーターで更新されることがわかりますが、どういうわけか私には起こっていません