반응형
스프링 부트 - @ConditionalOnProperty 또는 @ConditionalOnExpression
Spring-Boot-1.1.7을 사용하고 있습니다.type string 속성의 값에 따라 빈을 컨텍스트에 추가하는 것이 목적입니다.
다음과 같은 부울 값의 예를 많이 볼 수 있습니다.
@ConditionalOnExpression("${xxx.enabled:true}")
그러나 다음과 같은 속성 값을 기반으로 하는 식을 원합니다.
@ConditionalOnExpression("${server.host==localhost} or ${server.port==8080} ")
아니면 그런 비슷한 것.
누가 어떻게 하는지 보여줄 수 있어요?
결국, 이것은 나에게 효과가 있었다.
@ConditionalOnExpression("'${server.host}'=='localhost'")
조건부로 사용한 속성 값:
@ConditionalOnProperty(name="server.host", havingValue="localhost")
비교할 값이 리터럴인 경우 따옴표로 묶어야 합니다. 그러면 플레이스홀더가 (전체 식이 아닌) 속성 이름을 둘러쌉니다.${server.host}=='localhost'
예를 들어 문자열 값을 사용하고 있고 값이 설정되어 있는지 확인하려면 간단한 "체크"를 사용할 수 있습니다.
@Component
@ConditionalOnProperty(value = "foo.value")
public class Foo {
private String value;
// getter/ setter and other stuff ...
}
추가할 경우:foo.value: bar고객님께application.ymlfile 컴포넌트가 검색되어 응용 프로그램 컨텍스트에 추가되지만 값을 설정하지 않으면 컴포넌트가 추가되지 않습니다.
컴포넌트가 발견되었는지 여부를 확인하려면 다음을 사용합니다.debug: true당신의 안에서application.yml.
Foo matched:
- @ConditionalOnProperty (foo.value) matched (OnPropertyCondition)
대
Foo: Did not match:
- @ConditionalOnProperty (foo.value) did not find property 'foo.value' (OnPropertyCondition)
언급URL : https://stackoverflow.com/questions/26451321/spring-boot-conditionalonproperty-or-conditionalonexpression
반응형
'programing' 카테고리의 다른 글
| 루프가 있는 굴절기 사용 (0) | 2023.03.06 |
|---|---|
| Spring Boot 환경 변수 읽기 (0) | 2023.03.06 |
| 플러그인 활성화에서 관리 패널에 알림을 표시하는 방법 (0) | 2023.03.06 |
| Node events.js:167 throw er; // 처리되지 않은 '오류' 이벤트 (0) | 2023.03.06 |
| Swift [45] 디코딩 가능한 프로토콜에서 JSON 사전 유형을 사용하여 속성을 디코딩하는 방법 (0) | 2023.03.06 |