SpringCloud之Feign远程接口映射的实现

网友投稿 304 2022-11-23


SpringCloud之Feign远程接口映射的实现

一.简介

SpringCloud是基于Restful的远程调用框架,引入Ribbon负载均衡组件后还需要客户端使用RestTemplate调用远程接口,操作起来还显得繁琐。SpringCloud提供了远程接口映射,将远程Restful服务映射为远程接口,消费端注入远程接口即可实现方法调用。

二.流程

1.新建远程接口映射模块service-api,并引入Feign接口映射依赖

org.springframework.cloud

spring-cloud-starter-feign

2.编写接口映射接口

package com.vincent.service;

import org.springframework.cloud.netflix.feign.FeignClient;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

@FeignClient("SERVICE-USER")

@RequestMapping("/service-user")

public interface IUserService {

@GetMapping("/detail")

Ohttp://bject detail(@RequestParam("id") Integer id);

}

3.配置消费端application.yml

server:

port: 9001

eureka:

client:

service-url:

defaultZone: http://localhost:7001/service-eureka/eureka

register-with-eureka: false

4.消费端添加映射模块依赖

com.vincent

service-api

5.客户端注入需要使用的服务接口映射

package com.vincent.controller;

import com.vincent.service.IUserService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class UserController {

@Autowired

private IUserService userService;

@GetMapping("/detail")

public Object detail(Integer id){

return this.userService.detail(id);

}

}

5.编写消费端启动类

package com.vincent;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

import org.springframework.cloud.netflix.feign.EnableFeignClients;

@SpringBootApplication

@EnableFeignClients({"com.vincent.service"})

@EnableEurekaClient

public class ConsumerApp {

public static void main(String[] args) {

SpringApplication.run(ConsumerApp.class,args);

}

}

@EnableFeignClients 定义Feign接口映射扫描包,IOC容器会自动创建接口实现类

6.访问 http://localhost:9001/detail?id=1

三.总结

Feign接口映射服务端Restful接口会自动依赖Ribbon组件,实现客户端负载均衡。使用接口调用消费端远程接口就像调用本地方法一样。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IDEA使用SequenceDiagram插件绘制时序图的方法
下一篇:Java中List集合对象去重及按属性去重的8种方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~