JavaSpring引导-在运行时交换环境变量的内容

JavaSpring引导-在运行时交换环境变量的内容,java,spring-boot,Java,Spring Boot,我用JavaSpringBoot构建了一个应用程序,通过restTemplate请求另一个微服务 @Value(${url.api.otherMicroservice}) 私有字符串hostothermicroservice; @凌驾 公共内容findById(字符串id){ RestTemplate RestTemplate=新的RestTemplate(); 最终HttpEntity httpRequest=新HttpEntity(null); 返回restemplate.exchange(

我用JavaSpringBoot构建了一个应用程序,通过restTemplate请求另一个微服务

@Value(${url.api.otherMicroservice})
私有字符串hostothermicroservice;
@凌驾
公共内容findById(字符串id){
RestTemplate RestTemplate=新的RestTemplate();
最终HttpEntity httpRequest=新HttpEntity(null);
返回restemplate.exchange(hostOtherMicroService+id,HttpMethod.GET,
httpRequest,新的ParameteredTypeReference(){}).getBody();
}
此内容静态地位于我的application.properties中。 首先想到的是创建一个环境变量

url.api.otherMicroservice=${url\u api\u outromicroservice:https://application-domain/api/contents/}

今天,我的申请书在库伯内特斯出版,我在詹金斯出版。
我想知道您可以使用哪些替代方法在运行时更改作为变量传递的信息以调用端点。

我无法添加注释

鉴于您的端点发生变化的独特挑战。。。你只有几个选择

从Db刷新端点,或者从为您提供新端点的源刷新端点

或者(正如其他评论者所说)利用类似SpringCloudConfig的东西来做同样的事情,假设您可以在您的环境中这样做

您可以使用SpringCloud配置实现一个“刷新”REST端点来有条件地刷新您的值

这里是一个快速参考的资源


我希望这有帮助…

我无法添加评论

鉴于您的端点发生变化的独特挑战。。。你只有几个选择

从Db刷新端点,或者从为您提供新端点的源刷新端点

或者(正如其他评论者所说)利用类似SpringCloudConfig的东西来做同样的事情,假设您可以在您的环境中这样做

您可以使用SpringCloud配置实现一个“刷新”REST端点来有条件地刷新您的值

这里是一个快速参考的资源


我希望这有帮助…

只是好奇的API端点在运行时会突然改变,对吗?@Deadpool Yes。我正在寻找另一种方法,而不是使用查询来查找数据库中的信息。因为即使是数据库URL,我也需要被允许更改。您查看过spring云配置吗?@roddyoffrozenpeas Not Not=)只是好奇的API端点在运行时会突然更改,对吗?@Deadpool Yes。我正在寻找另一种方法,而不是使用查询来查找数据库中的信息。因为即使是数据库URL,我也需要被允许更改。您查看了spring云配置了吗?@roddyoffrozenpeas Not=)非常感谢。我要试试。非常感谢。我要试试看。