
io.github.ximutech.spore.config.RetrofitAutoConfiguration Maven / Gradle / Ivy
package io.github.ximutech.spore.config;
import io.github.ximutech.spore.SourceOkHttpClientRegistry;
import io.github.ximutech.spore.log.LoggingInterceptor;
import io.github.ximutech.spore.SourceOkHttpClientRegistrar;
import io.github.ximutech.spore.retry.RetryInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import java.util.List;
/**
* @author ximu
*/
@AutoConfiguration
@EnableConfigurationProperties(RetrofitProperties.class)
public class RetrofitAutoConfiguration {
private final RetrofitProperties retrofitProperties;
public RetrofitAutoConfiguration(RetrofitProperties retrofitProperties) {
this.retrofitProperties = retrofitProperties;
}
@Bean
@ConditionalOnMissingBean
public RetryInterceptor retrofitRetryInterceptor() {
return new RetryInterceptor(retrofitProperties.getGlobalRetry());
}
@Bean
@ConditionalOnMissingBean
public LoggingInterceptor retrofitLoggingInterceptor() {
return new LoggingInterceptor(retrofitProperties.getGlobalLog());
}
@Bean
@ConditionalOnMissingBean
public SourceOkHttpClientRegistry sourceOkHttpClientRegistry(
@Autowired(required = false) List sourceOkHttpClientRegistrars) {
return new SourceOkHttpClientRegistry(sourceOkHttpClientRegistrars);
}
@Bean
@ConditionalOnMissingBean
public RetrofitConfigBean retrofitConfigBean(RetryInterceptor retryInterceptor,
LoggingInterceptor loggingInterceptor){
RetrofitConfigBean retrofitConfigBean = new RetrofitConfigBean(retrofitProperties);
retrofitConfigBean.setRetryInterceptor(retryInterceptor);
retrofitConfigBean.setLoggingInterceptor(loggingInterceptor);
return retrofitConfigBean;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy