将多个 URL 路由到 Spring Boot Actuator 的健康端点
Routing multiple URLs to Spring Boot Actuator's health endpoint
我有一个应用配置为 Spring Boot Actuator 在 /manage/health 的运行状况端点提供服务。不幸的是,由于我正在部署的基础设施的一些细节,我需要将 / 和 /health 都别名为 /manage/health.
我没有看到通过属性仅自定义健康端点 URL 的选项。我假设没有办法添加适用于我不拥有的控制器的额外 @RequestMapping 注释。
我宁愿明确定义所需的别名,而不是一些影响所有流量性能的流量拦截器。作为 Spring 的新手,我不确定最好的方法是什么,而且我的搜索没有引导我朝着正确的方向前进。
任何人都可以提供一些方向吗?
谢谢。
向配置中添加一个 bean 以添加一个视图控制器。这必须扩展 WebMvcConfigurerAdapter
并简单地覆盖 addViewControllers
方法。
@Configuration
public class AliasWebConfig extends WebMvcConfigurerAdapter {
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("forward:/manage/health");
registry.addViewController("/health").setViewName("forward:/manage/health");
}
}
或者,如果您想强制重定向,请使用 addRedirectViewController
而不是 addViewController
。
@Configuration
public class AliasWebConfig extends WebMvcConfigurerAdapter {
public void addViewControllers(ViewControllerRegistry registry) {
registry. addRedirectViewController("/", "/manage/health");
registry.addRedirectViewController("/health","/manage/health");
}
}
我有一个应用配置为 Spring Boot Actuator 在 /manage/health 的运行状况端点提供服务。不幸的是,由于我正在部署的基础设施的一些细节,我需要将 / 和 /health 都别名为 /manage/health.
我没有看到通过属性仅自定义健康端点 URL 的选项。我假设没有办法添加适用于我不拥有的控制器的额外 @RequestMapping 注释。
我宁愿明确定义所需的别名,而不是一些影响所有流量性能的流量拦截器。作为 Spring 的新手,我不确定最好的方法是什么,而且我的搜索没有引导我朝着正确的方向前进。
任何人都可以提供一些方向吗?
谢谢。
向配置中添加一个 bean 以添加一个视图控制器。这必须扩展 WebMvcConfigurerAdapter
并简单地覆盖 addViewControllers
方法。
@Configuration
public class AliasWebConfig extends WebMvcConfigurerAdapter {
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("forward:/manage/health");
registry.addViewController("/health").setViewName("forward:/manage/health");
}
}
或者,如果您想强制重定向,请使用 addRedirectViewController
而不是 addViewController
。
@Configuration
public class AliasWebConfig extends WebMvcConfigurerAdapter {
public void addViewControllers(ViewControllerRegistry registry) {
registry. addRedirectViewController("/", "/manage/health");
registry.addRedirectViewController("/health","/manage/health");
}
}