Factory aidant à la construction d'un client web WebClient.
- Stratégie de retry WebClientRetryHandler (par défaut 2 retry en cas de timeout)
- Gestion des logs WebClientLoggingFilter
- Monitoring WebClientMonitoringFilter
- Gestion des timeout : par défaut le timeout de connection est de 500ms et le timeout de lecture de 5 secondes
- Gestion d'un pool de connection
Construction d'un client pour l'API "user" :
@Bean
WebClientFactory webClientFactory() {
WebClientFactory factory = new WebClientFactory();
factory.setProperties(userWebClientProperties());
factory.setMeterRegistry(meterRegistry());
return factory;
}
@Bean
MeterRegistry meterRegistry() {
return new LoggingMeterRegistry();
}
@Bean
@ConfigurationProperties(prefix = "client.user")
WebClientProperties userWebClientProperties() {
return new WebClientProperties();
}
Configuration minimale :
client.user.baseUrl=http://localhost:8080
Customiser les timeout (10 secondes en lecture et 1 seconde pour la connection) :
client.user.timeout.read=10000
client.user.timeout.connection=1000
Customiser la stratégie de retry :
# pas de retry
client.user.retry.count=0
# 5 retry
client.user.retry.count=5
Désactiver les logs :
client.user.log.enable=false
Customiser la taille du pool de connection :
client.user.pool.name=user
client.user.pool.size=10