【发布时间】:2018-10-09 10:07:00
【问题描述】:
我希望我的 spring 配置服务器返回一个基于客户端特定详细信息的属性。
具体来说,在某些配置文件中,我希望名为“self.url”的属性的值包含客户端的 ip。在其他配置文件中,它是一个常量值属性...
有可能吗?如果有,怎么做?
非常感谢大家
【问题讨论】:
标签: java spring configuration spring-config
我希望我的 spring 配置服务器返回一个基于客户端特定详细信息的属性。
具体来说,在某些配置文件中,我希望名为“self.url”的属性的值包含客户端的 ip。在其他配置文件中,它是一个常量值属性...
有可能吗?如果有,怎么做?
非常感谢大家
【问题讨论】:
标签: java spring configuration spring-config
好吧,我确实认为您可以为不同的配置文件设置不同的属性值。
我认为配置服务器不可能将self.url 之类的占位符解析为请求配置客户端的IP 地址。请记住,配置服务器是托管文件并为响应请求提供服务的服务器。在返回文件之前以特定于请求者的方式转换文件是不寻常的。从配置服务器的角度来看,它必须是每个请求者的转换,因为可能有多个实例为特定应用程序运行(因此同一配置文件的多个客户端,每个客户端具有不同的 IP)。我不知道配置服务器中有一个功能可以做到这一点。 (在我看来它can resolve placeholders locally 但仅在配置服务器内部,否则占位符将传递给请求客户端本身以解析。)
也许您可以让该配置文件的属性文件包含一个占位符,并让客户端自己使用 java.util 将其解析为自己的 IP 地址。 (例如here 或here。)
也可以在individual clients can override 的配置服务器的配置中设置默认值。这可能适用于您的情况。
【讨论】: