我需要从www.example.com文件提供超时application.properties,但在初始化时失败,因为属性尚未加载。加载属性的最佳实践是什么?
@Configuration
@AllArgsConstructor
@Slf4j
public class Config {
@Value("${connectionTimeout}")
int connectionTimeout;
@Value("${responseTimeout}")
int responseTimeout;
@Bean
public ClientHttpConnector getConnector() {
HttpClient client = HttpClient.create();
client.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, connectionTimeout)
.responseTimeout(Duration.ofMillis(responseTimeout));
return new ReactorClientHttpConnector(client);
}
@Bean
public WebClient webClient() {
return WebClient.builder().defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE)
.clientConnector(getConnector())
.build();
}
application.properties 文件夹中的www.example.com
connectionTimeout=30000
responseTimeout=30000
就像其他类似的帖子中建议的那样,我尝试使用@ConfigurationProperties
,但是根本不起作用。有没有一些我不知道的更简单的方法来加载它们?
3条答案
按热度按时间icomxhvb1#
尝试通过构造函数注入值:
ippsafx72#
尝试使用Environment类。
2vuwiymt3#
你得到的错误
表示它试图将
"${connectionTimeout}"
作为一个值读取。在您
application.properties
中我的直觉是问题来自
希望对你的调试有所帮助