2 回答
TA贡献1842条经验 获得超21个赞
您可以使用在路径前面使用forward 向控制器添加路由,例如:
zuul:
routes:
controller:
path: /test
url: forward:/test
other:
...
并将其放在您的其他路由定义之前,如果是 YAML 文件,它将保留一个订单。
http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#_strangulation_patterns_and_local_forwards
我没有测试过上面的例子,但我使用了一个类似的解决方案,它工作正常。
TA贡献1820条经验 获得超2个赞
您可以使用 BeanPostProcessor 来减少 ZuulHandlerMapping 的顺序。默认值为 -200
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Bean
public ZuulBeanPostProcessor postBean() {
return new ZuulBeanPostProcessor();
}
public static class ZuulBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof ZuulHandlerMapping) {
((ZuulHandlerMapping) bean).setOrder(10);
}
return bean;
}
}
}
添加回答
举报