Использование @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

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