3

application.properties在 SpringBoot 项目的文件中有一个属性-

app.module.service.url=http://localhost:8090/{DOCID}

我已将其注入到我的 Java 文件中,如下所示 -

@Value("${app.module.service.url}")
private String url;

现在我需要DOCID用我的函数(即动态)中的一些值替换。我该如何做到这一点,或者我完全错过了它?我知道我们可以message properties在 Spring 的情况下做到这一点。但这里与我无关Locales

编辑:

{DOCID}在我的 Java 实现中使用它时,我需要替换一些值。

...
public class Sample{

@Value("${app.module.service.url}")
private String url;

public void sampleFunc(){

String str = "random Value" //some dynamic value goes in here
...

现在我需要{DOCID}strin替换url

4

3 回答 3

1

Spring Properties 中无法进行双向绑定。它只能读取运行时和环境变量。

请参阅以下链接以获取更多信息。

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Configuration-Binding

于 2017-11-15T05:51:45.980 回答
1

为此,您可以使用 spring UriTemplate。

在您的实现类中:

...
public class Sample{

@Value("${app.module.service.url}")
private String url;

public void sampleFunc(){
 String dockId = someValue; // customize according to your need
 UriTemplate uriTemplate = new UriTemplate(url);
 URI uri = uriTemplate.expand(docId);
 new RestTemplate().postForEntity(uri, requestObhect, Responseclass.class);
}
...

更多信息可以参考: https ://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/util/UriTemplate.html

于 2021-07-03T08:36:44.287 回答
0

试试这样...

app.module.service.url=http://localhost:8090/{{docId}}

并设置运行配置如下

-DdocId = 133323 // any number which you want
于 2020-12-21T06:15:31.880 回答