• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

feign-引入-服务:间的调用

武飞扬头像
登高去梯
帮助5

总结:
1.导入openfeign的包
2.创建一个接口
@FeignClient配置服务的名称
配置调用的服务的url (拷贝调用服务接口过来修改)
3.启动类上打上@EnableFeignclients注解 (是否配置包的原则:feign所在包和启动类在同一级,就不用配置)
4,使用注入对象使用对象调用方法


pom.xml (消费者的)

<!--feign的支持-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

feign的接口

package cn.itsource.feign;

import cn.itsource.domain.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@FeignClient(value ="provider")
@RequestMapping("/user")
public interface ProviderFeignClient {
    @GetMapping("/{id}")
    User getUserById(@PathVariable("id") Integer id);
}

消费者 启动类:

package cn.itsource;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@EnableFeignClients // 开启feign的调用
//@EnableFeignClients(basePackages = {"cn.itsource.feign"})  //接口所在包 和 启动类是平级,就不用配置包的所在位置
public class ConsumerApp1020 {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApp1020.class);
    }
}

学新通

feign的使用:
注入feign
通过对象.方法调用

package cn.itsource.controller;

import cn.itsource.domain.User;
import cn.itsource.feign.ProviderFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;


@RestController
@RequestMapping("/consumer")
public class RemoteProviderController_feign {
    @Autowired
    private ProviderFeignClient feignClient; //注入自己的feign的接口,spring会创建代理对象(启动类加@EnableFeignClients注解)

    @GetMapping("/getUser/{id}")
    public User getUser(@PathVariable("id") Integer id){
        User user = feignClient.getUserById(id); // 对象.方法调用
        return user;
    }
}

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfajebg
系列文章
更多 icon
同类精品
更多 icon
继续加载