使用Spring Boot 1.0,我能够按如下方式自定义执行器端点......
endpoints.beans.id=foo/springbeans
这将在/ foo / springbeans中公开spring beans端点。但是,在最新的Spring Boot中,由于 AbstractEndpoint 中的以下代码...
,这是不可能的。@NotNull
@Pattern(regexp = "\\w+", message = "ID must only contains letters, numbers and '_'")
private String id;
我尝试使用下划线,但这只是在 / foo_springbeans 中公开了端点。这导致我尝试添加一个视图控制器,这样我至少可以重定向或转发到默认端点,但我也找不到一个简单的方法。如何配置端点或重定向?
答案 0 :(得分:1)
在打开Spring Boot的问题并被告知按照Rafal的建议简单地移动整个管理上下文之后,我能够实现我想要的,尽管代码比我想要的多。我创建了一个自定义 MvcEndpoint ,如下所示......
@Named
public class MyCustomHealthCheck extends EndpointMvcAdapter {
private HealthEndpoint delegate;
@Inject
public MyCustomHealthCheck(HealthEndpoint delegate) {
super(delegate);
this.delegate = delegate;
}
@ResponseBody
@RequestMapping(value = "/springbeans", method = GET)
public Health foo() {
return delegate.invoke();
}
}
上面的代码在HealthEndpoint映射到的路径下创建了/ springbeans路径,这对于我的用例来说已经足够了。如果我希望它映射到一个完全独立的路径,我需要创建一个虚拟端点并在此下面粘贴这个MvcEndpoint。
答案 1 :(得分:0)
对于Spring 1.x
以下属性可以帮助您:
endpoints.beans.path: /foo/springbeans
您可以将它与任何标准端点一起使用,如果您想将其与扩展AbstractEndpoint
的自定义端点一起使用,那么您需要额外的注释:
@ConfigurationProperties(prefix = "endpoints.customEndpoint")
然后使用property:
endpoints.customEndpoint.path:/ custom / endpoint