Мне нужно проверить два условия ('AND' (оба условия должны быть выполнены)) на yml-файле при создании компонента. Как это сделать, поскольку @ConditionalOnProperty поддерживает только одну конфигурацию свойств.Как проверить два условия при использовании @ConditionalOnProperty или @ConditionalOnExpression
ответ
Вас может заинтересовать абстрактным классом AllNestedConditions
, который был представлен в Spring Boot 1.3.0. Это позволяет создавать сложные условия, при которых все условия, которые вы определяете, должны применяться до того, как @Bean
инициализируются вашим классом @Configuration
.
public class ThisPropertyAndThatProperty extends AllNestedConditions {
@ConditionalOnProperty("this.property")
@Bean
public ThisPropertyBean thisProperty() {
}
@ConditionalOnProperty("that.property")
@Bean
public ThatPropertyBean thatProperty() {
}
}
Затем вы можете аннотировать @Configuration
так:
@Conditional({ThisPropertyAndThatProperty.class}
@Configuration
Решена проблема с использованием @ConditionalOnExpression для двух свойств вместе.
@ConditionalOnExpression("'${com.property1}${com.property2}'=='value1value2'")
В качестве значения свойства в конфигурации указано ниже.
недвижимости 1 Имя - com.property1
Value - value1
недвижимости 2 Имя - com.property2
Value - value2
Использование @ConditionalOnExpression
аннотаций и выражение SPEL, как описано здесь http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html.
Пример:
@Controller
@ConditionalOnExpression("${controller.enabled} and ${some.value} > 10")
public class WebController {
Так как с самого начала @ConditionalOnProperty можно было проверить более одного свойства. Атрибут name/value - это массив.
@Configuration
@ConditionalOnProperty({ "property1", "property2" })
protected static class MultiplePropertiesRequiredConfiguration {
@Bean
public String foo() {
return "foo";
}
}
Для простых булевых свойств с проверкой AND вам не требуется @ConditionalOnExpression.
- 1. Spring boot - @ConditionalOnProperty или @ConditionalOnExpression
- 2. PHPUnit, как проверить два условия
- 3. Нет квалификационной рожковый типа при использовании @ConditionalOnProperty
- 4. @ConditionalOnExpression enable/disabling @RestController
- 5. ВПР, чтобы проверить два условия
- 6. Spring Boot SpEL ConditionalOnExpression проверяет несколько свойств
- 7. Как проверить два условия перед вставкой?
- 8. Как проверить два условия внутри атрибута?
- 9. Как проверить два условия строки в SQL
- 10. Как проверить два условия в инструкции if?
- 11. Как проверить ссылку greyout, проверив два условия?
- 12. Rewrite условия, чтобы проверить, не два адрес
- 13. как проверить условия
- 14. Как проверить, соответствуют ли два условия из 5?
- 15. Как проверить два условия в инструкции if NOT?
- 16. Как обрабатывать условия при использовании mustache.js
- 17. Как использовать два условия?
- 18. Два условия: Visual Basic
- 19. весна-загрузки ConditionalOnProperty с картой на основе свойств
- 20. Как испытать в Баш один или два условия
- 21. Проверка два условия R
- 22. @ConditionalOnProperty для многозначных свойств
- 23. @ConditionalOnProperty условно работает
- 24. Объединить два регулярок условия использования или
- 25. Как проверить два условия в одном запросе в mysql?
- 26. Как проверить два условия с JQuery .Не() функции
- 27. Проверить при использовании document.attachEvent
- 28. Два условия для цикла
- 29. Как проверить три условия кнопки
- 30. Spring Boot - @ConditionalOnExpression для @RestController
Что относительно '' $ {com.property1} == 'value1' и $ {com.property2} == 'value2' "'? – Navrocky