Spring Cloud Feign 使用方式
2017-09-03 14:20
621 查看
结合 Spring Cloud 使用 Feign 的步骤如下:
Feign 结合 Spring Cloud 时,可使用 Springmvc 提供的注解支持,如 @RequestMapping @GetMapping 等
1.开启 Feign 支持 @EnableFeignClients
Get 请求方式:
展示两种定义 Get 请求的方式,注意必须要定义属性名称,不能像 mvc 省略 @RequestParam
一些坑:
1.@RequestMapping 不要在接口上注解,否则会当成 controller 暴露出去
2.使用 Get 请求时,参数只能是基本数据对象,可以是 String、Integer、Map (如果传入复杂对象,如 User ,则 Get 请求会被转为 Post 请求)
3.参数必须使用 @RequestParam 或 @PathVariable 进行注解,并定义属性名称,否则报错 no suitable HttpMessageConverter found for response type [type] and content type [text/plain;charset=UTF-8]
4.在 Feign 中使用 @RequestParam 的作用是向请求 url 中附加参数,如 /api/user/get?uid=1 中 ?uid=1 ,所以参数名称必须与服务接口的参数一致
Feign 项目文档
https://github.com/OpenFeign/feign
Feign 结合 Spring Cloud 时,可使用 Springmvc 提供的注解支持,如 @RequestMapping @GetMapping 等
1.开启 Feign 支持 @EnableFeignClients
@SpringBootApplication @EnableDiscoveryClient @EnableFeignClients public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }2.定义 Feign 接口
Get 请求方式:
展示两种定义 Get 请求的方式,注意必须要定义属性名称,不能像 mvc 省略 @RequestParam
@FeignClient(Constants.SERVICE_NAME) public interface ApiClient { public static final String URL = "/api/user"; @GetMapping(URL + "/get") User get(@RequestParam("uid") String uid); @GetMapping(URL + "/get/{uid}") User show(@PathVariable("uid") String uid); }同时也可以用 Map 构建参数
public User get(@RequestParam Map<String, Object> map);Post 请求方式:
@PostMapping(URL + "/update") User update(@RequestBody User user);服务端:
@RestController public class UserApi { @PostMapping("/update") public User update(@RequestBody User user) { ... } }
一些坑:
1.@RequestMapping 不要在接口上注解,否则会当成 controller 暴露出去
2.使用 Get 请求时,参数只能是基本数据对象,可以是 String、Integer、Map (如果传入复杂对象,如 User ,则 Get 请求会被转为 Post 请求)
3.参数必须使用 @RequestParam 或 @PathVariable 进行注解,并定义属性名称,否则报错 no suitable HttpMessageConverter found for response type [type] and content type [text/plain;charset=UTF-8]
4.在 Feign 中使用 @RequestParam 的作用是向请求 url 中附加参数,如 /api/user/get?uid=1 中 ?uid=1 ,所以参数名称必须与服务接口的参数一致
Feign 项目文档
https://github.com/OpenFeign/feign
相关文章推荐
- Spring Cloud(Netflix) Feign: 以Dubbo暴露服务的方式使用Feign
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- 微服务框架Spring Cloud介绍 Part4: 使用Eureka, Ribbon, Feign实现REST服务客户端
- 关于在Spring Cloud Feign工程中使用Ribbon配置不生效的问题
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- spring-cloud-feign使用@RequetParam错误:QueryMap parameter must be a Map: int
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- Spring Cloud Feign 的使用注意事项
- springcloud之Feign基本使用
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- Spring Cloud中如何优雅的使用Feign调用接口
- Spring Cloud Edgware新特性之三:使用配置属性自定义Feign的行为
- Spring Cloud 的 Hystrix 在 Feign上使用 Hystrix功能
- spring cloud 之 Feign 使用HTTP请求远程服务
- spring cloud使用Feign实现远程接口的调用
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- Spring Cloud版——电影售票系统<三>使用Feign实现声明式REST调用
- spring cloud feign使用okhttp3
- (八)SpringBoot+SpringCloud —— 使用Feign消费服务