Nano Hash - криптовалюты, майнинг, программирование

как изменить значения Application.properties в Spring

Есть ли способ изменить значения свойства в 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 

В настоящее время ужасная реализация выглядит следующим образом:

Применение.Свойства:

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

Класс А:

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

  • Откуда изначально берется значение userId? 04.09.2018
  • @A.Ebrahim A.Ebrahim значение исходит из класса контроллера, где мы получаем идентификатор вошедшего в систему пользователя. 04.09.2018
  • У меня есть полная свобода смены класса. Я думал, что URL-адрес в application.properties будет лучше, иначе мне, возможно, придется создавать URL-адрес вручную каждый раз из каждого класса, использующего его. 04.09.2018
  • См. stackoverflow. ком/вопросы/2205627/ 04.09.2018

Ответы:


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. Вы можете настроить его.

04.09.2018
  • конечно чище, чем то, что я делаю atm. Я попробую, спасибо 04.09.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..