Объединение сообщений профиля весной

Итак, я хочу объединить два сообщения из профиля при весенней загрузке. Это мой текущий код (который не работает, потому что поля пусты):

@Profile("fetchGame")
@Service
public class FetchGameApiService {

@Value("${game.api.url}")
private static String LINK;

@Value("${game.api.key}")
private static String KEY;

private static Integer gameId = 1;

private static final String URL = LINK + "/" + gameId + "?key = " + KEY;

//somelogic
}

Вот моя профильная страница:

game.api.url = https://api.rawg.io/api/games
game.api.key = 250b2de5e7734f638760ae2bad8bd29f
this_IS_The_Correct_Url = https://api.rawg.io/api/games/1?key=250b2de5e7734f638760ae2bad8bd29f

Обратите внимание, что я установил активный профиль в app.properties как: spring.profiles.active = fetchGame Мой вопрос: как правильно объединить две строки в одну из пружинных профилей? Не имея огромного количества кода и сделать его простым и понятным.

@Value("${game.api.url}") private static String KEY; так и должно быть @Value("${game.api.key}") private static String KEY;? Кроме того, вы не можете вводить static поля.
dan1st 17.03.2022 12:56

о, ты прав, сейчас исправлю

Baron 17.03.2022 12:56
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, профиль Spring не имеет ничего общего с вводом значений в поля или аргументы метода/конструктора. Пружинные профили позволяют условно настроить контекст приложения.

Вот список для проверки:

  • Убедитесь, что поля не являются статическими.
  • Проверьте, зарегистрирован ли bean-компонент PropertySourcesPlaceholderConfigurer в контексте
  • Или используйте @PropertySource("classpath:application.properties"), чтобы установить пользовательский файл свойств для разрешения значений.

Вот справочная документация для функции.

Я предлагаю изучить и принять безопасный способ работы с свойства конфигурации с аннотацией @ConfigurationProperties.

Другие вопросы по теме