问题
探索在不重新启动JVM的情况下按需启用/禁用 @RequestMapping
端点的选项。在运行时在端点上实现kill开关。
尝试
我已尝试过以下操作,但 @RefreshScope
似乎不适用于 @ConditionOnProperty
@RestController
@RefreshScope
@ConditionalOnProperty(name = "stackoverflow.endpoints", havingValue = "enabled")
public class MyController {
@Value("${stackoverflow.endpoints}")
String value;
@RequestMapping(path = "/sample", method = RequestMethod.GET)
public ResponseEntity<String> process() {
return ResponseEntity.ok(value);
}
}
使用
更新了属性POST /env?stackoverflow.endpoints=anyvalue
使用
重新加载上下文POST /refresh
此时控制器返回更新的值。
问题
有没有其他方法可以实现所需的功能?
答案 0 :(得分:0)
Boot中的条件仅适用于Configuration类级别或Bean定义级别。
这可能会对您有所帮助。
Arrays.asList(yourStringArray)