1

有没有办法改变一个属性的值Application.properties

例如:

user.update.url = http://localhost:8080/user/{:userId}/update

{:userId}有没有一种方法可以在不使用方法的情况下创建正确的 url String.replace()

http://localhost:8080/user/1/update 
http://localhost:8080/user/1/update 
http://localhost:8080/user/1/update 

目前,可怕的实现如下:

应用程序属性:

user.update.url = http://localhost:8080/user/{:userId}/update

A类:

public classs A{

  private int userId;

  @Value("${user.update.url}")
  private String url;

 public A(int userId){
  this.userId=userId
 }

  public String getUrl(){
    return url.replace("{:userId}",userId+"");
  }
}
4

1 回答 1

1

作为替代方案,您可以使用MessageSource通常用于解析 i18n 消息的 。

你可以注入它:

@Autowired
private MessageSource messageSource;

然后调用:

messageSource.getMessage(propertyKey, arrayOfParameters, LocaleContextHolder.getLocale());

例如,如果您有以下密钥:

testKey.sample = Hello {0} ! {1}

调用:

messageSource.getMessage("testKey.sample", "man", "Bye", LocaleContextHolder.getLocale());

将输出消息:

你好男人!再见

默认情况下,Springmessages.propertiessrc/main/resources文件夹中查找文件。你可以配置它。

于 2018-09-04T12:20:42.620 回答