(springCloud-5 Feign的使用)

本文介绍了Feign的基本概念,它是一个声明式的Web服务客户端,简化了微服务间的调用。在Spring Cloud中集成Feign的步骤包括:引入依赖、定义调用接口、启用Feign客户端和解决问题。在实际操作中遇到启动报错,通过添加特定依赖并测试后,成功实现了服务间的通信。
摘要由CSDN通过智能技术生成

1,什么是Feign:

Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单,它的使用方法就是定义一个接口,然后在上面添加注解@FeignClient

2,springCloud服务集成Fegin

第一步:
引入依赖

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-openfeign</artifactId>
	<version>2.0.2.RELEASE</version>
</dependency>

第二步:
编写调用其他服务的接口

@FeignClient(value = "ZT-FRANK-CONFIG-SERVICE")//这里是被调用服务yml文件的spring.application.name值
/**
 * 一下两种是通过ip的方式来调用服务
 */
//@FeignClient(name = "zt-frank-config-service",url = "http://localhost:7003")
//@FeignClient(value = "zt-frank-config-service",url = "http://localhost:7003")
public interface FeignRibbonRuleTestService {
    @RequestMapping(value = "/config/health",method = RequestMethod.POST)
    String feginRibbomRuleTest();
}

第三步:
主启动类上加上@EnableFeignClients注解包扫描到添加@FeignClient注解的那一层

@SpringBootApplication
@EnableEurekaClient
/**
 * 开启Feign调用接口的方式
 */
@EnableFeignClients(basePackages = {"com.zt.frank.consumerservice.service"})
public class ZtFrankConsumerFeignServiceApplication8002 {
	
	private static Logger logger = Logger.getLogger(ZtFrankConsumerFeignServiceApplication8002.class);

	public static void main(String[] args) {	
		SpringApplication.run(ZtFrankConsumerFeignServiceApplication8002.class, args);
		logger.info("*********ZtFrankConsumerFeignServiceApplication8002启动成功*********");
	}

}

第五步:
测试。。。 报错!

java.lang.NoClassDefFoundError: com/google/common/reflect/TypeToken

网上搜了下 https://blog.csdn.net/u010529525/article/details/89957124
添加一个依赖就好了

<dependency>
	<groupId>com.google.guava</groupId>
	<artifactId>guava</artifactId>
	<version>18.0</version>
</dependency>

再次启动项目,调用就可以了。。。问题解决!经过多次测试貌似只有第一次使用feign才会报这个错,加上该依赖然后通过feign实现项目之间的通信之后,将该依赖去除也是可以的,不知道是不是缓存的原因,算了不就结了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值