Spring Boot: разные конфигурации для запуска локально против развернутого Jar? - PullRequest
0 голосов
/ 26 апреля 2018

Итак, у меня есть приложение весенней загрузки, которое развернуто на Amazon Web Services с использованием jar, я также запускаю программу локально, используя «Boot Run» в IntelliJ для тестирования Есть только две вещи, которые я хочу изменить в том, как работает моя программа, когда я запускаю ее с помощью bootrun локально и когда она развернута из jar в облаке.

В моем app.properties есть 4 свойства, которые я установил, которые связаны с хранением данных sessin в кластере redis, и у меня есть один @Bean в классе java @Configuration, который связан с настройкой redis. Как я могу установить его так что, когда я запускаю локально, Spring игнорирует эти 4 свойства и Java-бины, но включает их при развертывании?

1 Ответ

0 голосов
/ 26 апреля 2018

Для этого вы можете использовать профили Spring. Вы можете переопределять свойства и загружать классы условно, используя определенный профиль.

Ваш application.properties файл загружается по умолчанию с помощью профиля default. Допустим, вы хотите переопределить настройки конфигурации Redis. Просто добавьте в папку ресурсов файл application-redis.properties и напишите свойства, которые вы хотите переопределить. Затем запустите ваше приложение с параметром --spring.profiles.active=redis в командной строке (если вы используете maven, это будет -Dspring.profiles.active=redis, я не знаю, так ли это с Gradle), или добавьте к вашей application.properties строку spring.profiles.active=redis чтобы избежать спора. Это также работает, если вы строите свою банку.

Пример:

#application.properties

some.config=some-value

#application-redis.properties

#this value takes precedence if you run with the profile "redis" active
some.config=other-value

Затем, чтобы загрузить определенный класс @Configuration (или любой другой класс с инжекцией пружины), вы добавляете аннотацию @Profile, например:

@Profile("redis")
@Configuration
public class SomeConfigurationClass {
  //...
}

Тогда этот класс конфигурации будет загружаться, только если вы запустите приложение с активным профилем "redis". Вы можете прочитать документацию для получения дополнительной информации:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

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