spring-boot - 如何通过代码在 Spring Cloud Gateway 中配置请求超时
问题描述
我需要在代码中为所有路由配置请求超时。我知道可以通过以下属性配置全局超时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();
}
这可以在代码中完成吗?
解决方案
我解决了我的问题。我创建了自己的 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;
}
推荐阅读
- python - 是否有不依赖按键的定时器功能
- c# - 使用 EF Core 和 SQL Server 数据库死锁的 Web API
- java - 更改 BottomNavigationView 中图标的大小
- c - 在 DDD 中看不到源代码。怎么解决?
- r - data.table 滚动平均时间戳窗口
- c - 使用 C 中的递归将二进制转换为十进制
- python - 为什么 `eval` 在 Python 类函数中不起作用?
- c# - 如何根据 db2 表中的主键查询单个项目?
- javascript - 生成的重复内容(uuid,缓存响应)javascript
- selenium - Selenium 删除参数