Problem
探索启用/禁用的选项@RequestMapping
按需端点,无需重新启动 JVM。在运行时在端点上实现终止开关。
Attempt
我已经尝试过以下方法但是@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
此时控制器返回更新后的值。
Question
还有其他方法可以实现所需的功能吗?
Boot 中的条件仅应用于配置类级别或 bean 定义级别。
这可能对你有帮助。
public class MyWebConfiguration extends WebMvcConfigurationSupport {
@Bean
@ConditionalOnProperty(prefix="stackoverflow.endpoints",name = "enabled")
public MyController myController() {
return new MyController ();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)