mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
fix g sentinel-feign contextid bug
This commit is contained in:
parent
8832644850
commit
85617c6757
@ -26,6 +26,7 @@ import org.springframework.cloud.openfeign.FeignContext;
|
|||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.ApplicationContextAware;
|
import org.springframework.context.ApplicationContextAware;
|
||||||
import org.springframework.util.ReflectionUtils;
|
import org.springframework.util.ReflectionUtils;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import feign.Contract;
|
import feign.Contract;
|
||||||
import feign.Feign;
|
import feign.Feign;
|
||||||
@ -82,20 +83,24 @@ public class SentinelFeign {
|
|||||||
"fallback");
|
"fallback");
|
||||||
Class fallbackFactory = (Class) getFieldValue(feignClientFactoryBean,
|
Class fallbackFactory = (Class) getFieldValue(feignClientFactoryBean,
|
||||||
"fallbackFactory");
|
"fallbackFactory");
|
||||||
String name = (String) getFieldValue(feignClientFactoryBean, "name");
|
String beanName = (String) getFieldValue(feignClientFactoryBean,
|
||||||
|
"contextId");
|
||||||
|
if (!StringUtils.hasText(beanName)) {
|
||||||
|
beanName = (String) getFieldValue(feignClientFactoryBean, "name");
|
||||||
|
}
|
||||||
|
|
||||||
Object fallbackInstance;
|
Object fallbackInstance;
|
||||||
FallbackFactory fallbackFactoryInstance;
|
FallbackFactory fallbackFactoryInstance;
|
||||||
// check fallback and fallbackFactory properties
|
// check fallback and fallbackFactory properties
|
||||||
if (void.class != fallback) {
|
if (void.class != fallback) {
|
||||||
fallbackInstance = getFromContext(name, "fallback", fallback,
|
fallbackInstance = getFromContext(beanName, "fallback", fallback,
|
||||||
target.type());
|
target.type());
|
||||||
return new SentinelInvocationHandler(target, dispatch,
|
return new SentinelInvocationHandler(target, dispatch,
|
||||||
new FallbackFactory.Default(fallbackInstance));
|
new FallbackFactory.Default(fallbackInstance));
|
||||||
}
|
}
|
||||||
if (void.class != fallbackFactory) {
|
if (void.class != fallbackFactory) {
|
||||||
fallbackFactoryInstance = (FallbackFactory) getFromContext(name,
|
fallbackFactoryInstance = (FallbackFactory) getFromContext(
|
||||||
"fallbackFactory", fallbackFactory,
|
beanName, "fallbackFactory", fallbackFactory,
|
||||||
FallbackFactory.class);
|
FallbackFactory.class);
|
||||||
return new SentinelInvocationHandler(target, dispatch,
|
return new SentinelInvocationHandler(target, dispatch,
|
||||||
fallbackFactoryInstance);
|
fallbackFactoryInstance);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user