как изменить значения Application.properties в Spring - PullRequest
0 голосов
/ 04 сентября 2018

Есть ли способ изменить значения свойства в Application.properties

например:

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

Есть ли способ создать правильный URL на основе {: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 голосов
/ 04 сентября 2018

В качестве альтернативы вы можете использовать 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());

выведет сообщение:

Привет, парень! Bye

По умолчанию Spring ищет messages.properties файлы в папке src/main/resources. Вы можете настроить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...