博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring cloud服务调用(Feign)
阅读量:5174 次
发布时间:2019-06-13

本文共 1649 字,大约阅读时间需要 5 分钟。

(一)添加依赖  在项目 user-api 添加 feign 依赖:
org.springframework.cloud
spring-cloud-starter-openfeign
(二)申明 Feign 客户端  这里改造的是 user-api 项目下的 服务接口:UserService/*** 注解 @FeignClient:申明 Feign 客户端* @author 咸鱼* @date 2018/11/11 16:37*/@FeignClient(name = "${user.service.name}")//利用占位符,避免未来整合时硬编码public interface UserService {/*** 保存用户* @param user 待保存对象 {
@link User}* @return true 成功 false 失败*/@PostMapping("/user/save")boolean saveUser(User user);/*** 查找所有用户* @return 用户列表*/@GetMapping("/user/find/all")List
findAll();}注意:在使用 @FeignClient name 属性尽量使用占位符,避免硬编码。否则,未来升级时,不得不升级客户端版本。对上面的改造做一个简单的解析:  在以前,我们 客户端(服务调用方) 调用 服务端(服务提供方) 提供的服务时,使用的是 restTemplate.getForObject("http://" + serviceProviderName + "/user/find/all",List.class),而我们这里的改造,就是将其转换成这段代码。  比如 @FeignClient(name = "${user.service.name}") 这里的 ${user.service.name} 就是我们的 服务端(服务提供方)应用名,也就是上面的 serviceProviderName;而 @GetMapping("/user/find/all") 也就是 上面的 "/user/find/all" 路径。  在改造完成以后,Feign 框架会自动组装 @FeignClient(name = "${user.service.name}") 和 @GetMapping("/user/find/all") 变为 "http://" + serviceProviderName + "/user/find/all"。(三)激活 Feign 客户端  需要在 客户端(服务调用方) 激活 Feign,这里的服务调用方就是 user-ribbon-client 项目。  使用 @EnableFeignClients 激活 Feign 客户端。/*** 注解 @RibbonClient:激活 Ribbon* 注解 @EnableCircuitBreaker:激活 服务短路* 注解 @EnableFeignClients:激活 Feign 客户端*/@EnableFeignClients(clients = UserService.class)//clients 属性:申明 UserService 接口作为 Feign Client 调用@EnableCircuitBreaker@SpringBootApplication@RibbonClient("user-service-provider")//指定目标应用名称public class UserServiceClientApplication {......}

 

转载于:https://www.cnblogs.com/pan-my/p/11429946.html

你可能感兴趣的文章
开源框架中常用的php函数
查看>>
nginx 的提升多个小文件访问的性能模块
查看>>
set&map
查看>>
集合类总结
查看>>
4.AE中的缩放,书签
查看>>
1.开发准备
查看>>
centos su命令
查看>>
CLR:基元类型、引用类型和值类型
查看>>
dubbo序列化hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决...
查看>>
jQuery中的事件绑定的几种方式
查看>>
泥塑课
查看>>
setImageBitmap和setImageResource
查看>>
springMVC4 注解配置实例
查看>>
单片机编程
查看>>
Filter in Servlet
查看>>
Linux--SquashFS
查看>>
Application Pool Identities
查看>>
2017-3-24 开通博客园
查看>>
【MySQL性能优化】MySQL常见SQL错误用法
查看>>
Vue2全家桶之一:vue-cli(vue脚手架)超详细教程
查看>>