基于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 错误
大部分主要原因是没有启用
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
详解spring cloud Feign使用中遇到的问题总结
本文介绍了spring cloud Feign使用中遇到的问题总结,分享给大家,具体如下: 问题一: 在前面的示例中,我们讲过 @RequestMapping(value = "/user/{id}", method = RequestMethod.GET) @GetMapping("/user/{id}") 这两个注解的效果是等价的,但是在Feign使用中,只能用上面的那种方式,不能直接用@GetMapping,下面我们将前面的那个示例中,改成@GetMappin
-
Spring cloud踩坑记录之使用feignclient远程调用服务404的方法
前言 公司项目进行微服务改造,由之前的dubbo改用SpringCloud,微服务之间通过FeignClient进行调用,今天在测试的时候,eureka注册中心有相应的服务,但feignclient就是无法调通,一直报404错误,排查过程如下: 一.问题: 服务提供方定义的接口如下: /** * 黑白名单查询接口 * * @author LiJunJun * @since 2018/10/18 */ @Component(value = "blackAndWhiteListFeignClient
-
详解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中关于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 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
随机推荐
- Linux中 find查找命令用法详解
- Oracle将查询的结果放入一张自定义表中并再查询数据
- vue滚动轴插件better-scroll使用详解
- 详解java IO流之缓冲流的使用
- Python、PyCharm安装及使用方法(Mac版)详解
- asp.net 2个日期之间的整月数的算法
- ASP.NET实现读取Excel内容并在Web上显示
- codeigniter显示所有脚本执行时间的方法
- 纯JSP+DWR实现三级联动下拉选择菜单实现技巧
- C#基础之泛型委托实例教程
- JavaScript制作淘宝星级评分效果的思路
- javascript多种数据类型表格排序代码分析
- jQuery文件上传插件Uploadify使用指南
- shell脚本学习指南[一](Arnold Robbins & Nelson H.F. Beebe著)
- 浅谈#ifndef,#define,#endif的作用和用法
- Python简单定义与使用字典dict的方法示例
- jQuery带时间的日期控件代码分享
- Java中5种方式实现String反转
- Java中IO流 RandomAccessFile类实例详解
- 浅谈Java变量赋值运算符及相关实例 原创
