I found a simple solution using @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);
}
}
With this annotation added, unless I have
my.controller.enabled=true
in my application.properties
file, the controller won't start at all.
You can also use the more convenient:
@ConditionalOnProperty("my.property")
Which behaves exactly as above; if the property is present and "true"
, the component starts, otherwise it doesn't.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…