feign是开发式、声明式HTTP客户端,让客户端代码更优雅
feign是开始支持注解式开发,支持springmvc注解
集成了Eureka 和Ribbon ,面像接口编程,开发http客户端
简单说在service层用feign创建服务的客户端代码,可以在多个地方进行调用,可以写到公共层
Ribbon+restTemplate方式,需要写很多链接服务的代码,还有就是postForObject等方式的调用。
相比下,feign可以更简单。
1、pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
2、新增接口类
@FeignClient(value="DEPT01-8001")
public interface DeptClientService {
@RequestMapping("/dept/getDetpInfo")
public List getDetpInfo();
}
DEPT01-8001 是服务名称
“/dept/getDetpInfo” 是服务下的接口,也就是controller中的mapping 路径
也就是上面说的面向接口编程
3、调用deptclientservice类
@RestController
public class DeptController_consumer_feign {
@Autowired
private DeptClientService deptClientService;
@RequestMapping("/feign/consumer/getDetpInfo")
public List getDetpInfo()
{
return deptClientService.getDetpInfo();
}
}
注入DeptClientService 接口,在方法中调用服务
4、启动类,扫描feignclient 接口。
@EnableFeignClients(basePackages = "com.xxx.service")