基于spring cloud多个消费端重复定义feign client的问题

目录
  • springcloud多个消费端重复定义feign client
  • 在spring cloud+feignClient报错

springcloud多个消费端重复定义feign client

spring cloud消费端调用服务提供者,有两种方式rest+ribbon和Feign,Feign是一个声明式的伪Http客户端更为简单易用,所以我们项目选用Feign作为服务通讯方式

项目有6个模块,A,B,C,D,E,F,模块之前必不可少的会存在相互调用的情况

问题来了。通过FeignClient的方式调用服务端,需要在消费端建立对服务端的调用的FeignClient接口

  • 假如A和B都需要调用C。
  • A调用C需要在A模块中建立一个C的FeignClient接口
  • B调用C也需要在B模块建立一个C的FeignClient接口
  • 如果D、E、F都需要用到C模块,那么还需要建立3个FeignClient。而这些FeignClient里面的代码都是一样的。

既然这样那FeignClient接口能不能定义为一个通用的接口呢。

作者尝试将FeignClient单独建立了一个模块G,将对各个模块的FeignClient调用接口集中在模块G中管理,A,B,C,D,E,F模块互调时,只需要在pom中引入G模块即可。

想法很美好,现实很残酷,实验结果失败了。

引入模块G后,启动SpringBoot,控制报错。找不到bean。

消费端启动类Application加了扫描包注解@ComponentScan(basePackages={"com.chelizi.feign.intf"})

***************************
APPLICATION FAILED TO START
***************************

Description:

A component required a bean of type 'com.chelizi.feign.intf.system.SysSerialNumberController' that could not be found.

Action:

Consider defining a bean of type 'com.chelizi.feign.intf.system.SysSerialNumberController' in your configuration.

加了上面的@ComponentScan注解后,com.chelizi.feign.intf下的普通@Component或者@Service的JavaBean是可以被扫描到的,但是@FeignClient的类没法扫描到

在spring cloud+feignClient报错

在spring cloud+feignClient中出现Consider defining a bean of type ‘xxxx' in your configuration 错误

大部分主要原因是没有启用

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解spring cloud feign踩坑记录

    1:多客户端时,feign接口抽取到公共jar中,此时,客户端的启动类上需要对该jar中feign所在的包进行扫描,要在spring和feign中同时注册,否则启动时会报:"Consider defining a bean of type '******Feign' in your configuration." @SpringBootApplication @EnableTransactionManagement @EnableDiscoveryClient @ComponentSc

  • Spring cloud踩坑记录之使用feignclient远程调用服务404的方法

    前言 公司项目进行微服务改造,由之前的dubbo改用SpringCloud,微服务之间通过FeignClient进行调用,今天在测试的时候,eureka注册中心有相应的服务,但feignclient就是无法调通,一直报404错误,排查过程如下: 一.问题: 服务提供方定义的接口如下: /** * 黑白名单查询接口 * * @author LiJunJun * @since 2018/10/18 */ @Component(value = "blackAndWhiteListFeignClient

  • Spring Cloud中关于Feign的常见问题总结

    一.FeignClient接口,不能使用@GettingMapping 之类的组合注解 代码示例: @FeignClient("microservice-provider-user") public interface UserFeignClient { @RequestMapping(value = "/simple/{id}", method = RequestMethod.GET) public User findById(@PathVariable(&quo

  • 详解spring cloud Feign使用中遇到的问题总结

    本文介绍了spring cloud Feign使用中遇到的问题总结,分享给大家,具体如下: 问题一: 在前面的示例中,我们讲过 @RequestMapping(value = "/user/{id}", method = RequestMethod.GET) @GetMapping("/user/{id}") 这两个注解的效果是等价的,但是在Feign使用中,只能用上面的那种方式,不能直接用@GetMapping,下面我们将前面的那个示例中,改成@GetMappin

  • 基于spring cloud多个消费端重复定义feign client的问题

    目录 springcloud多个消费端重复定义feign client 在spring cloud+feignClient报错 springcloud多个消费端重复定义feign client spring cloud消费端调用服务提供者,有两种方式rest+ribbon和Feign,Feign是一个声明式的伪Http客户端更为简单易用,所以我们项目选用Feign作为服务通讯方式 项目有6个模块,A,B,C,D,E,F,模块之前必不可少的会存在相互调用的情况 问题来了.通过FeignClient

  • 基于Spring Cloud Zookeeper实现服务注册与发现

    服务注册 1.添加Spring Cloud Zookeeper依赖: <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> <exclusions> <exclusion> <grou

  • 详解基于Spring Cloud几行配置完成单点登录开发

    单点登录概念 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.登录逻辑如上图 基于Spring 全家桶的实现 技术选型: Spring Boot Spring Cloud Spring Security oAuth2 客户端: maven依赖 <dependency> <groupId>org.springframework.boot</g

  • Spring Cloud Data Flow初体验以Local模式运行

    1 前言 Spring Cloud Data Flow是什么,虽然已经出现一段时间了,但想必很多人不知道,因为在项目中很少有人用.不仅找不到很多中文资料,英文资料也一样少的可怜.这让探索的路更加艰辛,也更加有趣吧. Spring Cloud Data Flow是基于微服务的,专门用于流式和批式数据处理的框架. 2 基本概念 2.1 数据处理模式 数据处理有两种模式,分别是Streaming流式处理和Batch批次处理.Streaming是长时间一直存在的,你数据来了我就处理,没来我就等着,基于消

  • Spring cloud 限流的多种方式

    在频繁的网络请求时,服务有时候也会受到很大的压力,尤其是那种网络攻击,非法的.这样的情形有时候需要作一些限制.例如:限制对方的请求,这种限制可以有几个依据:请求IP.用户唯一标识.请求的接口地址等等. 当前限流的方式也很多:Spring cloud 中在网关本身自带限流的一些功能,基于 redis 来做的.同时,阿里也开源了一款:限流神器 Sentinel.今天我们主要围绕这两块来实战微服务的限流机制. 首先讲 Spring cloud 原生的限流功能,因为限流可以是对每个服务进行限流,也可以对

  • spring cloud oauth2 feign 遇到的坑及解决

    目录 springcloudoauth2feign遇到的坑 客户端模式 基于springsecurity springcloud微服务增加oauth2权限后feign调用报null 一般是这样实现的 spring cloud oauth2 feign 遇到的坑 关于oauth2相关的内容这里不重复描述,在spring cloud中在管理内部api时鉴权相信有很多人会有疑问,这里描述两种比较low的用法,由于公司内部使用的是阿里云edas这里仅仅是记录一下,如果有更好的用法在请赐教,不喜勿喷! 客

  • Spring Boot使用RestTemplate消费REST服务的几个问题记录

    我们可以通过Spring Boot快速开发REST接口,同时也可能需要在实现接口的过程中,通过Spring Boot调用内外部REST接口完成业务逻辑. 在Spring Boot中,调用REST Api常见的一般主要有两种方式,通过自带的RestTemplate或者自己开发http客户端工具实现服务调用. RestTemplate基本功能非常强大,不过某些特殊场景,我们可能还是更习惯用自己封装的工具类,比如上传文件至分布式文件系统.处理带证书的https请求等. 本文以RestTemplate来

  • 基于Spring Security的Oauth2授权实现方法

    前言 经过一段时间的学习Oauth2,在网上也借鉴学习了一些大牛的经验,推荐在学习的过程中多看几遍阮一峰的<理解OAuth 2.0>,经过对Oauth2的多种方式的实现,个人推荐Spring Security和Oauth2的实现是相对优雅的,理由如下: 1.相对于直接实现Oauth2,减少了很多代码量,也就减少的查找问题的成本. 2.通过调整配置文件,灵活配置Oauth相关配置. 3.通过结合路由组件(如zuul),更好的实现微服务权限控制扩展. Oauth2概述 oauth2根据使用场景不同

  • 利用Spring Cloud Config结合Bus实现分布式配置中心的步骤

    概述 假设现在有个需求: 我们的应用部署在10台机器上,当我们调整完某个配置参数时,无需重启机器,10台机器自动能获取到最新的配置. 如何来实现呢?有很多种,比如: 1.将配置放置到一个数据库里面,应用每次读取配置都是直接从DB读取.这样的话,我们只需要做一个DB变更,把最新的配置信息更新到数据库即可.这样无论多少台应用,由于都从同一个DB获取配置信息,自然都能拿到最新的配置. 2.每台机器提供一个更新配置信息的updateConfig接口,当需要修改配置时,挨个调用服务器的updateConf

  • 详解Spring Cloud Config采用Git存储时两种常用的配置策略

    由于Spring Cloud Config默认采用了Git存储,相信很多团队在使用Spring Cloud的配置中心时也会采用这样的策略.即便大家都使用了Git存储,可能还有各种不同的配置方式,本文就来介绍一下两种常用的配置策略. 第一种:多个项目公用一个Git仓库,用不同的目录区分项目 主要的配置项如下: spring.cloud.config.server.git.uri=https://github.com/dyc87112/config-repo.git spring.cloud.con

随机推荐