Spring Cloud OpenFeign
2022/7/21 6:24:48
本文主要是介绍Spring Cloud OpenFeign,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency>
启动类
@SpringBootApplication @EnableFeignClients public class OpenFeignApplication { public static void main(String[] args) { SpringApplication.run(OpenFeignApplication.class, args); } }
发送请求
解析:
name="HttpBin"
:name 可以是任意的客户端名称,用于创建 Spring Cloud LoadBalaner 客户端。如果使用注册中心,则通过该名称去查找服务物理地址。url="httpbin.org"
:可以是 url 的绝对路径或主机名。qulifiers
:Spring Bean 别名@RequestParam
:如果不给参数添加注解,默认是@RequestBody
@FeignClient(name = "httpBin", url = "httpbin.org") public interface HttpBinClient { @GetMapping("/get") Result<StudentDTO> get(@RequestParam String name, @RequestParam Integer age); @PostMapping("/post") Result post(StudentDTO studentDTO); }
@Data public class Result<T> { private T args; private String data; }
@Data @Builder @NoArgsConstructor @AllArgsConstructor public class StudentDTO { private String name; private Integer age; }
测试:
@SpringBootTest public class HttpBinClientTest { @Autowired private HttpBinClient httpBinClient; @Test public void testGet() { StudentDTO jerry = StudentDTO.builder() .name("Jerry") .age(18) .build(); Result<StudentDTO> result = httpBinClient.get("Jerry", 18); Assertions.assertEquals(jerry.getName(), result.getArgs().getName()); Assertions.assertEquals(jerry.getAge(), result.getArgs().getAge()); } @Test public void testPost() throws JsonProcessingException { StudentDTO jerry = StudentDTO.builder() .name("Jerry") .age(18) .build(); Result result = httpBinClient.post(jerry); StudentDTO studentDTO = new ObjectMapper().readValue(result.getData(), StudentDTO.class); Assertions.assertEquals(jerry.getName(), studentDTO.getName()); Assertions.assertEquals(jerry.getAge(), studentDTO.getAge()); } }
// todo
参阅
- 官方文档
这篇关于Spring Cloud OpenFeign的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-19Java前端后端分离学习指南
- 2024-11-19Java全栈学习:从入门到实践
- 2024-11-19Java微服务系统学习入门指南
- 2024-11-19Java微服务学习:入门与实践指南
- 2024-11-19Java学习:初学者必备指南
- 2024-11-19Java医疗系统学习:从入门到初级实战教程
- 2024-11-19SpringCloud Alibaba入门教程:轻松搭建微服务架构
- 2024-11-19SSM框架入门教程:轻松搭建Java企业级应用
- 2024-11-19订单系统学习:新手入门指南
- 2024-11-19读写分离学习:轻松入门与实战指南