首页CMSspringboot集成feign(springboot集成feign调用)

springboot集成feign(springboot集成feign调用)

时间2023-03-27 16:12:21发布访客分类CMS浏览936
导读:Feign1 Feign介绍Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端。Spring Cloud引入Feign并且集成了Ribbon实现客户端负载均衡调用。2 Feign测试1...

Feign

1 Feign介绍

Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端。Spring Cloud引入Feign并且集成了Ribbon实现客户端负载均衡调用。

2 Feign测试

1、在客户端添加依赖

在课程管理服务添加下边的依赖:

dependency>
    
    groupId>
    org.springframework.cloud/groupId>
    
    artifactId>
    spring-cloud-starter-openfeign/artifactId>
    
/dependency>
    
dependency>
    
    groupId>
    com.netflix.feign/groupId>
    
    artifactId>
    feign-okhttp/artifactId>
    
/dependency>

2、定义FeignClient接口

参考Swagger文档定义FeignClient,注意接口的Url、请求参数类型、返回值类型与Swagger接口一致。

在课程管理服务中创建client包,定义查询cms页面的客户端该用接口,

@FeignClient(value = XcServiceList.XC_SERVICE_MANAGE_CMS)
public interface CmsPageClient {


    @GetMapping("/cms/page/get/{
id}
    ")
    public CmsPage findById(@PathVariable("id") String id);

}

3、启动类添加@EnableFeignClients注解

4、测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class FeignTest {
    
    @Autowired
    CmsPageClient cmsPageClient;

    @Test
    public void testFeign() {
    
        //通过服务id调用cms的查询页面接口
        CmsPage cmsPage = cmsPageClient.findById("5a754adf6abb500ad05688d9");
    
        System.out.println(cmsPage);

    }


}

Feign工作原理如下:

1、 启动类添加@EnableFeignClients注解,Spring会扫描标记了@FeignClient注解的接口,并生成此接口的代理对象

2、 @FeignClient(value = XcServiceList.XC_SERVICE_MANAGE_CMS)即指定了cms的服务名称,Feign会从注册中心获取cms服务列表,并通过负载均衡算法进行服务调用。

3、在接口方法 中使用注解@GetMapping("/cms/page/get/{ id} "),指定调用的url,Feign将根据url进行远程调用。

4 Feign注意点

SpringCloud对Feign进行了增强兼容了SpringMVC的注解 ,我们在使用SpringMVC的注解时需要注意:

1、feignClient接口 有参数在参数必须加@PathVariable(“XXX”)和@RequestParam(“XXX”)

2、feignClient返回值为复杂对象时其类型必须有无参构造函数。

本博客来自学成在线课件

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

springcmsfeignswaggerurl

若转载请注明出处: springboot集成feign(springboot集成feign调用)
本文地址: https://pptw.com/jishu/407.html
一文读懂 Xcode 代码索引原理 springboot集成ribbon(springboot集成minio)

游客 回复需填写必要信息