栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java系列——@FeignClient

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java系列——@FeignClient

前言

@FeignClient 用于定义接口,通过该接口调用远程服务的方法

目录标题
  • 前言
  • 一、使用
  • 二、@RequestParam、@RequestBody区别![在这里插入图片描述](https://img-blog.csdnimg.cn/f702ef69cf59482598de1b192cd7b5b2.png)

一、使用
  1. 开启Feign
@EnableFeignClients
public class 启动类{略}
  1. 配置调用远程服务的接口
@FeignClient(
	url = "https://www.test.com",
	name = "test-url",
	configuration = TestFeignConfiguration.class
)
public interface ITestClient {

	String API_PREFIX = "/test-api";

	@PostMapping(value = API_PREFIX + "/forward/{id}")
	Resp forward(@RequestParam String name,
						 @RequestParam List hobbies,
						 @PathVariable String id);

  1. Feign接口的配置类 (这里在用feign调用其他服务时,在header中加上了token等)
@Configuration
public class TestFeignConfiguration implements RequestInterceptor {


	@Override
	public void apply(RequestTemplate template) {
		template.header("Content-Type", "application/json; charset=UTF-8");
		template.header("X-Auth-Token", "我的token啦啦啦");
	}

}
  1. 表现层调用
@Resource
private ITestClient  testClient;

@RequestMapping(value = "/forward/{id}",method = RequestMethod.POST)
	public Resp forward(@RequestParam String name,
								@RequestParam List hobbies,
								@PathVariable String id){
		return  testClient.forward(name,hobbies,id);
	}
二、@RequestParam、@RequestBody区别

参数中有个content-type,指定了传参类型,默认为application/x-www-form-urlencoded

① 请求url中的参数、form-data(表单)、x-www-form-urlencoded:只可以用@RequestParam

② application/json:json字符串部分可以用@RequestBody

③GET请求不能用@RequestBody


RequestBody 只能有一个!!
RequestBody 只能有一个!!
RequestBody 只能有一个!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/683944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号