Spring boot - @ConditionalOnProperty или @ConditionalOnExpression

Я использую Spring -Boot-1.1.7. Мое намерение состоит в том, чтобы добавить bean в мой контекст в соответствии со значением свойства строки типа.

Я имею в виду, я вижу много примеров логических значений, таких как:

@ConditionalOnExpression("${xxx.enabled:true}")

Но я хочу выражение, основанное на значении свойства, например:

@ConditionalOnExpression("${server.host==localhost} or ${server.port==8080} ")

или что-то в этом роде.

Может ли кто-нибудь показать мне пример, как это сделать?

Ответ 1

В конце концов, это работало для меня:

@ConditionalOnExpression("'${server.host}'=='localhost'")

Ответ 2

Для условного значения свойства я использовал:

@ConditionalOnProperty(name="server.host", havingValue="localhost")

Ответ 3

Если значение, с которым вы хотите сравнить, является литералом, вам нужно процитировать его, и заполнитель будет обходить имя свойства (не все выражение), например. ${server.host}=='localhost'