1,springcloud 中支持http調用的兩種方式,RestTemplate,Feign客戶端
2,Feign 客戶端是一個聲明式(注解方式)http 遠程調用工具
3,實現方式如下:
第一步:
例如member 服務需要調用order 服務,采用feign 客戶端調用的方式
member 服務中添加依賴:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
在member 服務中,定義feign 接口:
@FeignClient(name = "app-aiyuesheng-order") :代表這個接口是調用 app-aiyuesheng-order(eureka 中注冊服務的別名) 這個服務中的getOrder的接口
@FeignClient(name = "app-aiyuesheng-order") public interface OrderFeign { @RequestMapping("/getOrder") public String getOrder(); }
第二步:controller 中直接引入即可
@RestController public class IndexMemberController { @Autowired private OrderFeign orderFeign; @RequestMapping("/getOrder") public String getOrder() { String res = orderFeign.getOrder(); return res; } }
第三步:啟動類中加入@EnableFeignClients
@SpringBootApplication @EnableEurekaClient @EnableFeignClients public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
order 服務中,要有這個getOrder的具體實現:
@RestController public class IndexOrderController { @RequestMapping("/getOrder") public String getOrder(){ return "獲得訂單成功"; } }
依次將注冊中心,member 服務,order 服務啟動就可以通過feign 客戶端來訪問了。。。