[SPRING] @RestController를 사용하여 봄 부팅을 활성화 / 비활성화 할 수 있습니까?
SPRING@RestController를 사용하여 봄 부팅을 활성화 / 비활성화 할 수 있습니까?
@RestController가있는 "표준"스프링 부트 응용 프로그램이 제공됩니다 (예 :
@RestController
@RequestMapping(value = "foo", produces = "application/json;charset=UTF-8")
public class MyController {
@RequestMapping(value = "bar")
public ResponseEntity<String> bar(
return new ResponseEntity<>("Hello world", HttpStatus.OK);
}
}
특정 응용 프로그램 특성이 존재하거나 존재하지 않는 경우 엔트 포인트가 시작되지 못하도록하는 주석 또는 기술이 있습니까?
참고 : 메서드 내에서 속성을 테스트하고 분해하는 것은 솔루션이 아닙니다. 끝 점이 있기 때문입니다.
세분성에 대해서는 신경 쓰지 않습니다. 즉, 단지 메소드를 활성화 / 비활성화하거나 클래스 전체가 괜찮습니다.
프로필은 속성이 아니기 때문에 프로필을 통한 제어로 내 문제가 해결되지 않습니다.
해결법
-
==============================
1.@ConditionalOnExpression을 사용하여 간단한 해결책을 찾았습니다.
@ConditionalOnExpression을 사용하여 간단한 해결책을 찾았습니다.
@RestController @ConditionalOnExpression("${my.controller.enabled:false}") @RequestMapping(value = "foo", produces = "application/json;charset=UTF-8") public class MyController { @RequestMapping(value = "bar") public ResponseEntity<String> bar( return new ResponseEntity<>("Hello world", HttpStatus.OK); } }
이 주석이 추가 된 상태에서, 내가 가지고 있지 않으면
my.controller.enabled=true
내 application.properties 파일에서 컨트롤러가 전혀 시작되지 않습니다.
보다 편리하게 사용할 수도 있습니다.
@ConditionalOnProperty("my.property")
위와 똑같은 행동을합니다. 속성이 있고 "true"이면 구성 요소가 시작되고, 그렇지 않으면 구성 요소가 시작되지 않습니다.
from https://stackoverflow.com/questions/29958231/can-a-spring-boot-restcontroller-be-enabled-disabled-using-properties by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 데이터 mongodb - '커서'옵션이 필요합니다. (0) | 2018.12.26 |
---|---|
[SPRING] Spring REST - .zip 파일을 만들어 클라이언트로 보냅니다. (0) | 2018.12.26 |
[SPRING] 오라클의 SEQUENCE.NEXTVAL에 해당하는 MySQL (0) | 2018.12.26 |
[SPRING] Spring으로 속성을 재로드하는 방법? (0) | 2018.12.26 |
[SPRING] Spring MVC 406은 JSON 응답 대신 허용되지 않는다. (0) | 2018.12.25 |