Использование @Value с условием весной для отображения значения в строку
У меня есть файл application.properites со следующим:
xxx.xxx = sandbox
xxx.sandbox = 123
xxx.production = 456
Я хотел бы сопоставить строковое значение 123 в случае xxx.xxx == песочница и 456 в случае xxx.xxx == производство
...
public class temp {
@Value("${??????}")
private String token;
}
Можно ли заполнить условие подстрекательства? что сопоставит токен с 123 или 456 в соответствии с xxx.xxx?
2 ответа
Простой способ на тот случай, если кто-нибудь ответит на этот вопрос:
@Value("#{'${xxx.xxx}'=='sandbox' ? '${xxx.sandbox}' : '${xxx.production}'}")
Я просто думаю, что намного легче начать работать с профилями.
Вы можете использовать Spring Profiles, так что вы можете иметь файл свойств для каждой среды.
Профили Spring предоставляют способ разделения частей конфигурации вашего приложения и делают его доступным только в определенных средах. Любой @Component или @Configuration можно пометить @Profile, чтобы ограничить его загрузку.
Вы можете увидеть больше здесь http://www.baeldung.com/spring-profiles
http://www.mkyong.com/spring/spring-profiles-example/
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html