本文主要是介绍使用Fign进行客户端远程调用和SpringFormEncoder的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、引入依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2、启动类加上注解
@EnableFeignClients
@SpringBootApplication
public class FeignTestApplication {public static void main(String[] args) {SpringApplication.run(FeignTestApplication .class, args);}}
3、新增接口暴露的接口
@FeignClient(value = "feign2",path="/feignService",configuration=MultipartSupportConfig.class)
public interface FeignTestService {@PostMapping(value = "/getUser", consumes = APPILICATION_JSON_UTF8_VALUE)List<UserInfor> getUserList(@Requesbody UserInvo inVo);//用于修改spring默认的encoder配置@Configurationclass MultipartSupportConfig{@Beanpublic SpringFormEncoder feignFormEncoder(ObjectFactory<HttpMessageConverts> convert ){return new SpringFormEncoder(convert );}
}
先配置生成了SpringFormEncoder的bean对象,然后在@FeignClient注解中配置configuration值来修改默认Encoder。
这里使用的并不是spring标准的encoder配置,
4、使用@AutoWired进行注入,调用
@AutoWired
private FeignTestService feignTestService;@PostMapping("/getUsers")
@ApiOperation("查询用户列表")
public List<UserInfor> getUserList(UserInVo inVo){return feignTestService.getUserList(inVo);
}
5.RequestMapping 中produces 和 consumes
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
这篇关于使用Fign进行客户端远程调用和SpringFormEncoder的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!