我需要在代码中为所有路由配置请求超时。我知道全局超时可以通过application.properties中的以下属性来配置,但是如何在代码中配置它们呢?
spring.cloud.gateway.httpclient.connect-timeout=1000
spring.cloud.gateway.httpclient.response-timeout=5s我已经研究了GatewayAutoConfiguration如何在默认情况下配置超时。HttpClientProperties拥有这两个属性,但是它不能被覆盖。
@Bean
public HttpClientProperties httpClientProperties() {
return new HttpClientProperties();
}这可以在代码中完成吗?
发布于 2021-05-19 05:59:27
我解决了我的问题。我创建了自己的bean,并使用注释@Primary来创建具有相同类型的单独bean。GatewayAutoConfiguration现在使用我的bean而不是默认的bean。
@Bean
@Primary
public HttpClientProperties overwrittenHttpClientProperties() {
HttpClientProperties p = new HttpClientProperties();
p.setConnectTimeout(3000);
p.setResponseTimeout(Duration.ofMillis(10000));
return p;
}https://stackoverflow.com/questions/67592101
复制相似问题