@ConditionalOnProperty 주석의 목적은 무엇입니까?
방금 스프링 부트 구성을 수정하고
@ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views")
...에서 org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration
@Bean(name = { "connect/twitterConnect", "connect/twitterConnected" })
@ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views")
public View twitterConnectView() {
return new GenericConnectionStatusView("twitter", "Twitter");
}
이 주석의 목적을 이해할 수 없습니다. 속성 값 (예 : "spring.social", "auto-connection-views")이 존재하는 경우에만 빈을 사용할 수 있다고 생각합니다.
어노테이션은 속성 구성에 따라 조건부로 Spring Bean을 생성하는 데 사용됩니다. 질문에 표시된 사용법에서 spring.social.auto-connection-views
속성이 존재하고 다른 값이있는 경우에만 빈이 생성됩니다 false
. 즉,이 View
Bean을 작성하려면 spring.social.auto-connection-views
특성 을 설정해야하며 false 이외의 값을 가져야합니다.
Spring Boot 코드베이스 전체에서이 주석의 다양한 용도를 찾을 수 있습니다. 또 다른 예는 다음과 같습니다.
@ConditionalOnProperty(prefix = "spring.rabbitmq", name = "dynamic", matchIfMissing = true)
public AmqpAdmin amqpAdmin(CachingConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory);
}
의 사용을합니다 matchIfMissing
. 이 경우 속성이 존재하고 다른 값을 가지 거나 속성이 전혀 존재하지 않으면 AmqpAdmin
빈이 생성됩니다 . 이것은 옵트 인 질문의 예제가 아닌 빈 옵트 아웃을 생성합니다.spring.rabbitmq.dynamic
false
TYPE 수준에서이 속성을 사용하는 경우, 즉 @Configuration 클래스 중 하나에서 ...이 경우 주석은 기본 속성 파일에 대해 평가 / 검사됩니다. application.properties
@Configuration이있는 TYPE 수준의 @ConditionalOnProperty
오히려 그 반대입니다. 메소드 구현을위한 전제 조건, 속성이 환경 (개발, 승인, 생산)에 설정되어 있고 메소드로 참값이면 실행이 가능하다.
환경 주석에 속성이 설정되어 있지 않으면 메서드 실행이 차단되지 않습니다.
참조 URL : https://stackoverflow.com/questions/26394778/what-is-purpose-of-conditionalonproperty-annotation
'code' 카테고리의 다른 글
너겟 패키지 종속성 계층보기 (0) | 2021.01.08 |
---|---|
SpringData JPA Repository에서 save () 후에 반환 된 인스턴스를 사용하는 이유는 무엇입니까? (0) | 2021.01.08 |
항목의 액세스 인덱스에 대한 Aurelia repeat. (0) | 2021.01.07 |
Android 툴바 메뉴 / 아이콘을 Google지도 앱 에서처럼 왼쪽에 정렬하려면 어떻게해야합니까? (0) | 2021.01.07 |
오류 : "%> %"함수를 찾을 수 없습니다. (0) | 2021.01.07 |