如何在Spring中更改Application.properties的值

时间:2018-09-04 11:35:45

标签: java spring application.properties

是否有一种方法可以更改Application.properties中的属性值

例如:

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

有没有一种方法可以在不使用{:userId}方法的情况下基于String.replace()创建合适的网址?

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

当前,可怕的实现如下:

Application.properties:

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+"");
  }
}

1 个答案:

答案 0 :(得分: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());

将输出消息:

  

你好,男人!再见

默认情况下,Spring在messages.properties文件夹中查找src/main/resources文件。您可以配置它。