@ConditionalOnProperty 또는 @ConditionalOnExpression을 사용하는 동안 두 가지 조건을 확인하는 방법
빈을 작성하면서 YAML 속성 파일에서 두 가지 조건이 충족되는지 확인해야 합니다.어떻게 하면 좋을까요?@ConditionalOnProperty주석은 하나의 속성만 지원합니까?
처음부터@ConditionalOnProperty둘 이상의 자산을 확인할 수 있었습니다.이름/값 속성은 배열입니다.
@Configuration
@ConditionalOnProperty({ "property1", "property2" })
protected static class MultiplePropertiesRequiredConfiguration {
@Bean
public String foo() {
return "foo";
}
}
AND 체크가 있는 단순한 부울 속성의 경우 필요 없습니다.@ConditionalOnExpression.
사용하다@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 {
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("#{${path.to.property.one:true} and ${path.to.property.two:true}}")
속성을 찾을 수 없는 경우 두 True 값이 모두 기본값입니다.
두 속성에 대해 @ConditionalOnExpression을 함께 사용하여 문제를 해결.
@ConditionalOnExpression("'${com.property1}${com.property2}'=='value1value2'")
여기서 구성 속성의 값은 다음과 같습니다.
속성 1 이름 -com.property1값 -value1
속성 2 이름 -com.property2값 -value2
언급URL : https://stackoverflow.com/questions/36016864/how-to-check-two-condition-while-using-conditionalonproperty-or-conditionalone
'programing' 카테고리의 다른 글
| Angular를 얻으려면JS를 A 태그의 제목 속성에 바인딩하시겠습니까? (0) | 2023.03.21 |
|---|---|
| 디렉티브의 링크 함수에서의 동작을 테스트하는 방법 (0) | 2023.03.21 |
| 개체를 JSON으로 직렬화하는 동안 순환 참조 예외가 감지되었습니다. (0) | 2023.03.21 |
| 리액트 라우터는 상대 링크를 지원합니까? (0) | 2023.03.21 |
| 봄 MVC 뷰 레이어용 JSP 대체 방법 (0) | 2023.03.21 |