我希望我的 Spring 配置服务器返回一个基于客户端特定详细信息的属性。
具体来说,在某些配置文件中,我希望名为"self.url"的属性的值包含客户端的 ip。在其他配置文件中,它是一个常量值属性...
可能吗?如果是这样,如何?
非常感谢大家
好吧,我确实认为您可以为不同的配置文件设置不同的属性值。
我认为不可能开箱即用地将占位符self.url
由配置服务器解析为请求配置客户端的 IP 地址。请记住,配置服务器是托管文件并响应请求提供文件的服务器。在返回文件之前,以特定于请求者的方式转换文件是不寻常的。从配置服务器的角度来看,它必须是每个请求者的转换,因为可能有多个实例为特定应用程序运行(因此同一配置文件的多个客户端,每个客户端具有不同的 IP(。我不知道配置服务器中有什么功能可以做到这一点。(在我看来,它可以在本地解析占位符,但只能在配置服务器内部解析,否则占位符将传递给请求客户端本身进行解析。
也许您可以让该配置文件的属性文件包含一个占位符,并让客户端本身使用 java 将其解析为自己的 IP 地址。(此处或此处的示例。
还可以在配置服务器的配置中设置各个客户端可以覆盖的默认值。这也许适用于您的情况。