@FeignClient RequestParam.value(

2020-11-19  本文已影响0人  不务正业的coder

定义Feign接口时,注意要在方法参数中加入 value="xxx"属性,否则创建bean实例时会失败,导致应用无法启动。

需留意的是,Controller层的方法不一定要加入value="xxx",而开发有时直接将controller代码复制到feign,导致出现问题。

Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> annotationType) throws BeansException.

可以替换为下面方式,避免所有所有报异常。

String[] beanNames= applicationContext.getBeanNamesForAnnotation((Class<? extends Annotation>) Class

        .forName("org.springframework.cloud.openfeign.FeignClient"));

Map<String, Object> beans= new LinkedHashMap<>(beanNames.length);

for (String beanName: beanNames) {

    try {

        beans.put(beanName, applicationContext.getBean(beanName));

    } catch (BeansException e) {

        log.warn("FeignDependency getBean error, beanName={}", beanName, e);

}

}

上一篇 下一篇

猜你喜欢

热点阅读