• springBoot如何集成feign呢?


    转自:

    springBoot如何集成feign呢?

    下文笔者讲述SpringBoot集成feign的方法分享,如下所示

    Feign简介

    Feign:
      是Netflix开发的声明式
      模板化HTTP客户端
    使用Feign可使我们非常方便的调用HttpAPI
    
    在Spring Cloud中
        使用Feign非常简单——创建一个接口
        并在接口上添加一些注解,然后就可以调用Feign
    

    SpringBoot集成Feign的方法

    实现思路:
        1.引入相应的jar包
    	2.SpringBoot中加入EnableFeignClients注解
    

    例:

    引入jar包
    
    
        com.netflix.feign
        feign-httpclient
        8.18.0
    
    
        com.netflix.feign
        feign-core
        8.18.0
    
    
        org.springframework.cloud
        spring-cloud-starter-feign
        1.4.4.RELEASE
    
    
    ---在启动类中加入默认启动feign相关
    @EnableFeignClients
    
    3.写接入的公共接口类
    @FeignClient(name = "api",url = "http://域名/api")
    public interface CommonSwitch {
        //对应的服务里的接口地址,及请求方式
        @RequestMapping(value = "/express_v1/index", method = RequestMethod.POST)
        @ResponseBody
        String feignString(@RequestParam(value="page") Integer page);
        /**
         * 容错处理类,当调用失败时,简单返回空字符串
         */
        @Component
        public class DefaultFallback implements CommonSwitch {
            @Override
            public String feignString(@RequestParam(value="page") Integer page){
                return "";
            }
        }
    }
    
    
    FeignClient参数说明:
    name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现
    url: url一般用于调试,可以手动指定@FeignClient调用的地址
    decode404:当发生http 404错误时,如果该字段位true,会调用decoder进行解码,否则抛出FeignException
    configuration: Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract
    fallback: 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口
    fallbackFactory: 工厂类,用于生成fallback类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码
    path: 定义当前FeignClient的统一前缀
    
    4.对外的接口(也就是controller)
    
    @Api(tags = "feign集成测试")
    @RestController
    @RequestMapping("/feigntest")
    @Slf4j
    @CrossOrigin(origins = "*", maxAge = 3600)
    public class FeigntestController {
        @Autowired
        private CommonSwitch commonSwitch;
     
        /**
         * @param page
         * @return
         */
        @ApiOperation(value = "json测试")
        @RequestMapping(value="/feignTest.json", method= RequestMethod.GET)
        public String  feignTest(@RequestParam(name = "page") int page) {
            String tteString = commonSwitch.feignString(page);
            return tteString;
        }
    }
  • 相关阅读:
    Jenkins安装
    Javaweb之javascript的详细解析
    matlab 七段式轨迹 S型速度规划
    LeetCode 24.两两交换链表中的结点
    【Django | 安全防护】CSRF跨站伪请求和SQL注入攻击
    鸿萌数据恢复服务:Mac 文件系统是如何影响 Mac 数据恢复的?
    边缘计算盒子与云计算:谁更适合您的业务需求?
    安装 eslint 配置指南 及 遇到的一些问题记录
    MERGE Into 的用法在ORACLE和高斯数据库上的差异
    简析CloudCompare文件夹之间的关系
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/128031734