什么是Feign

Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的HTTP客户端 Feign.

实现

1、先要启动EureKaserver工程(注册中心)和SpringCloud-Service工程(服务生产者)
可以参考:https://blog.csdn.net/u012081441/article/details/80708060

2、创建一个maven工程SpringCloud-Feign

pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.fit</groupId><artifactId>SpringCloud-Feign</artifactId><version>0.0.1-SNAPSHOT</version><!-- SpringBoot父类依赖引用 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version><relativePath /></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><!--eureka server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.RC1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories></project>

application.yml文件配置

eureka:client:serviceUrl:defaultZone: http://localhost:8888/eureka/
server:port: 8765
spring:application:name: SpringCloud-Feign

定义服务接口类UserService.java,使用@FeignClient(“SpringCloud-Service”)注解来绑定该接口对应SpringCloud-Service服务

@FeignClient("SpringCloud-Service")
public interface UserService {@RequestMapping(value ="getUser")public Map<String,Object> getUser();
}

在web层中调用上面定义的UserController

@RestController
public class UserController {@Resourceprivate UserService userService;@RequestMapping(value ="getUser")public Map<String,Object> getUser(){return userService.getUser();}
}

在应用主类中通过@EnableFeignClients注解开启Feign功能

启动文件FeignApp.java

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class FeignApp {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubSpringApplication.run(FeignApp.class, args);}
}

源码下载

【微服务架构】SpringCloud之Feign相关推荐

  1. 微服务架构 SpringCloud(一)组件和概念介绍

    一:什么是微服务(Microservice) 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及 ...

  2. SpringCloud一、前提概述、相关微服务和微服务架构理论知识、微服务技术栈有哪些、

    ①前提概述.微服务架构springcloud的相关学习. 前提知识+相关说明 1.目前,我们学习到最后的微服务架构SpringCloud,基本上需要熟悉以前的学习内容和知识:springmvc.spr ...

  3. PDF分享-SpringCloud+高并发+中间件+微服务架构从零开始学微服务架构

    什么是微服务? 如何快速上手SpringCloud微服务系统架构+常用中间件服务 1.SOA.Webservice.Dubbo.SpringCloud究竟什么是微服务? 2.单体应用向微服务异构平台架 ...

  4. Springboot+MySQL+VUE实现的在线教育网站源码+视频教程(Springboot微服务架构)

    下载地址:https://download.csdn.net/download/BSDKT/85347133?spm=1001.2014.3001.5503 项目介绍: Springboot+MySQ ...

  5. 最新微服务框架SpringCloud Alibaba介绍,搭建

    微服务和SpringCloud Alibaba详细介绍(一),手把手搭建微服务框架 PS:本博客是本人参照B站博主:JAVA阿伟如是说 的视频讲解手敲整理的笔记 跟着一起手动搭建的框架 供大家一起学习 ...

  6. SOA架构与微服务架构到底是什么?以及对应的一些常用的框架简介

    架构是逻辑上的设计模式,而框架则是具体的实现.一个架构模式上,可能会使用到多个框架. 一.架构的演变 架构的演变是根据业务量的急速扩张对技术要求不断的加深而产生的.如果细粒度的划分可以有很多路线,我一 ...

  7. springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程

    网站架构演变过程 传统架构 传统的SSH架构,分为三层架构 web控制层.业务逻辑层.数据库访问层. 传统架构也就是单点应用,就是大家在刚开始初学JavaEE技术的时候SSH架构或者SSM架构,业务没 ...

  8. SpringCloud微服务架构之,Hystrix 熔断器,Gateway 网关

    Hystrix 概述 Hystix 是 Netflix 开源的一个延迟和容错库,用于隔离访问远程服务.第三方库,防止出现级联失败(雪崩). pom依耐 <!-- hystrix -->&l ...

  9. SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用

    什么是SpringCloud 微服务架构 • "微服务"一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到 http://mar ...

  10. Java生鲜电商平台-SpringCloud微服务架构高并发参数优化实战

    Java生鲜电商平台-SpringCloud微服务架构高并发参数优化实战 一.写在前面 在Java生鲜电商平台平台中相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构,毕竟现在这 ...

最新文章

  1. Swift中的模式分类
  2. 如何跟程序员谈一场没有Bug的恋爱
  3. 【机器学习基础】数学推导+纯Python实现机器学习算法19:PCA降维
  4. Diango博客--13.将“视图函数”类转化为“类视图”
  5. python豆瓣mysql_python操作mysql
  6. 面试官系统精讲Java源码及大厂真题 - 40 打动面试官:线程池流程编排中的运用实战
  7. 手动构建redis集群
  8. 网站服务器后缀名,服务器域名,域名后缀
  9. 富媒体广告投放的一些经验
  10. 百度人脸识别申请授权文件步骤要领
  11. JSON.stringify(value[, replacer [, space]])
  12. saiku 展示优化第二步(要诀和技巧)
  13. JavaScript 数组array 插入[ push() ] 与 删除[ splice() ]
  14. Oracle 常用语句大全
  15. 云服务器配置和域名配置
  16. CTFHub-web前置技能-请求方式、302跳转、cookie、基础认证、响应包源代码
  17. 线段树的进阶:多种信息的维护与传递
  18. C语言编程入门之--第一章初识程序
  19. dhu 数据科学与技术 第7次作业
  20. 夸奖对方代码写的好_夸奖别人画得好怎么写

热门文章

  1. 2021-10-27 我与地坛
  2. 解决烦人的img与input不能水平对齐的问题
  3. linux环境下快速配置hadoop集群免密登录
  4. Mysql生成UUID
  5. dataframe重命名
  6. idea中项目失去svn控制
  7. java.lang.NullPointerException异常原因及解决
  8. LeetCode中等题之特殊等价字符串组
  9. TVM性能评估分析(六)
  10. 自动驾驶开发云平台业务分析