zoukankan      html  css  js  c++  java
  • SpringCloud学习笔记(六、SpringCloud Netflix Feign)

    目录:

    • feign简介
    • feign应用

    feign简介:

    feign是一款Netflix开源的声明式、模板化的http客户端,它可以更加便捷、优雅的调用http api;SpringCloud对Netflix的feign进行了增强,使其支持spring并整合了ribbon、eureka以提供负载均衡的http调用。

    feign应用:

    1、引入openfeign依赖

    1 <dependency>
    2     <groupId>org.springframework.cloud</groupId>
    3     <artifactId>spring-cloud-starter-openfeign</artifactId>
    4 </dependency>

    2、启动类加上feign注解(需要eureka的支持,所以此模块首先需要为eureka客户端)

    )第一种,针对类扫描feign api

    @EnableFeignClients(clients = {Xxx1.class, Xxx2.class})

    )第二种,针对包扫描feign api

    @EnableFeignClients(basePackages = {"com.xxx.xxx"})

    3、定义feign api

    feign api只需与模块的api保持一致就可以了

    )模块:

    1 @RestController
    2 @RequestMapping("/ad")
    3 public class AdApi {
    4 
    5     @GetMapping("/getUserAd/{account}")
    6     public String getUserAd(@PathVariable(name = "account") String account) {
    7         return "这是" + account + "的广告";
    8     }
    9 }

    )feign api:

    1 @FeignClient(name = "ad-model")
    2 public interface AdRemoteService {
    3 
    4     @GetMapping("/ad/getUserAd/{account}")
    5     String getUserAd(@PathVariable(name = "account") String account);
    6 }

    4、调用

    调用方式很简单,就像调用方法一样就可以了

     1 @Autowired
     2 private AdRemoteService adRemoteService;
     3 
     4 @GetMapping("/login/{account}/{password}")
     5 public String login(@PathVariable String account, @PathVariable String password) {
     6     UserDTO userDTO = USER_INFO.get(account);
     7     if (userDTO == null) {
     8         return "FAILED";
     9     }
    10 
    11     boolean result = userDTO.getPassword().equalsIgnoreCase(password);
    12     if (!result) {
    13         return "FAILED";
    14     }
    15 
    16     // 调用广告接口
    17     String adResult = adRemoteService.getUserAd(account);
    18     System.err.println(adResult);
    19 
    20     return "SUCCESS";
    21 }
  • 相关阅读:
    C# 创建线程
    离最近发表时间代码
    ORA12154: TNS: 无法解析指定的连接标识符
    SQL和LINQ按年月、按类型显示文章篇数
    对象的序列化和反序列化
    父类与子类间的隐藏与重写
    C# 进程启动与关闭
    猫叫老鼠跑的事件例子
    第十八章 12判断string类型字符串是否为空 简单
    第十八章 11 string字符串的比较 简单
  • 原文地址:https://www.cnblogs.com/bzfsdr/p/11661968.html
Copyright © 2011-2022 走看看