|
@@ -1,7 +1,8 @@
|
|
|
package com.chelvc.framework.feign.config;
|
|
|
|
|
|
import com.chelvc.framework.feign.coding.CustomEncoder;
|
|
|
-import com.chelvc.framework.feign.interceptor.FeignExceptionInterceptor;
|
|
|
+import com.chelvc.framework.feign.interceptor.FeignFailureInterceptor;
|
|
|
+import com.chelvc.framework.feign.interceptor.FeignInvokeInterceptor;
|
|
|
import feign.codec.Decoder;
|
|
|
import feign.codec.Encoder;
|
|
|
import feign.codec.ErrorDecoder;
|
|
@@ -9,7 +10,9 @@ import feign.optionals.OptionalDecoder;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.beans.factory.ObjectFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.config.BeanDefinition;
|
|
|
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
|
|
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
|
|
|
import org.springframework.cloud.openfeign.FeignAutoConfiguration;
|
|
|
import org.springframework.cloud.openfeign.support.ResponseEntityDecoder;
|
|
@@ -20,8 +23,6 @@ import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.context.annotation.Primary;
|
|
|
import org.springframework.context.annotation.Scope;
|
|
|
|
|
|
-import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;
|
|
|
-
|
|
|
/**
|
|
|
* Feign配置
|
|
|
*
|
|
@@ -36,18 +37,26 @@ public class FeignConfigurer {
|
|
|
|
|
|
@Bean
|
|
|
@Primary
|
|
|
- @Scope(SCOPE_PROTOTYPE)
|
|
|
+ @Scope(BeanDefinition.SCOPE_PROTOTYPE)
|
|
|
public Encoder encoder() {
|
|
|
return new CustomEncoder(new SpringEncoder(this.messageConverters));
|
|
|
}
|
|
|
|
|
|
@Bean
|
|
|
+ @ConditionalOnMissingBean(Decoder.class)
|
|
|
public Decoder decoder() {
|
|
|
return new OptionalDecoder(new ResponseEntityDecoder(new SpringDecoder(this.messageConverters)));
|
|
|
}
|
|
|
|
|
|
@Bean
|
|
|
+ @ConditionalOnMissingBean(ErrorDecoder.class)
|
|
|
public ErrorDecoder errorDecoder() {
|
|
|
- return new FeignExceptionInterceptor();
|
|
|
+ return new FeignFailureInterceptor();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Bean
|
|
|
+ @ConditionalOnMissingBean(FeignInvokeInterceptor.class)
|
|
|
+ public FeignInvokeInterceptor feignInvokeInterceptor() {
|
|
|
+ return new FeignInvokeInterceptor();
|
|
|
}
|
|
|
}
|