项目使用spring cloud 因此选择feign进行微服务通信,避免重复编写feign的接口,建立一个模块,提供对于某个微服务的通信能力本版本依赖如下(如其他微服务需要对该服务通信,加入依赖直接调用即可):
spring boot : 1.5.9.RELEASE
spring cloud : Edgware.RELEASE
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
</dependencies>
feign接口
@FeignClient(name = "guess-robot")
public interface RobotFeignService {
/**
* 停止所有机器人
*
* @return
*/
@GetMapping("/stop")
MessageResult stop();
/**
* 开启机器人
*
* @return
*/
@GetMapping("/start")
MessageResult start() ;
/**
* 重新设置机器人
*
* @return
*/
@GetMapping("/reset")
MessageResult reset();
}
配置
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableFeignClients(basePackages = "com.spark.bitrade.service")
public class FeignConfig {
}
遇到的坑为:EnableFeignClients 中 没有添加basePackages的路径时,其他项目引入改工程后,spring无法注入RobotFeignService实列,加入RobotFeignService所在路径即可
网友评论