Для этого вы можете использовать профили 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