@FeignClient RequestParam.value() was empty on parameter 0问题

定义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);

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容