一、Feign简介

电子商务社交平台源码请加企鹅求求:一零三八七七四六二六。Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Fegin它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。

简而言之:

  • Feign 采用的是基于接口的注解
  • Feign 整合了ribbon

二、准备工作

继续用上一节的工程, 启动eureka-server,端口为8761; 启动service-hi 两次,端口分别为8762 、8773.

三、创建一个feign的服务

新建一个spring-boot工程,取名为serice-feign,在它的pom文件引入Feign的起步依赖spring-cloud-starter-feign、Eureka的起步依赖spring-cloud-starter-eureka、Web的起步依赖spring-boot-starter-web,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<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.forezp</groupId><artifactId>service-feign</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>service-feign</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></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><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><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></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文件,指定程序名为service-feign,端口号为8765,服务注册地址为http://localhost:8761/eureka/ ,代码如下:

eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/
server:port: 8765
spring:application:name: service-feign复制代码

在程序的启动类ServiceFeignApplication ,加上@EnableFeignClients注解开启Feign的功能:

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ServiceFeignApplication {public static void main(String[] args) {SpringApplication.run(ServiceFeignApplication.class, args);}
}复制代码

定义一个feign接口,通过@ FeignClient(“服务名”),来指定调用哪个服务。比如在代码中调用了service-hi服务的“/hi”接口,代码如下:

<br>/*** Created by fangzhipeng on 2017/4/6.*/
@FeignClient(value = "service-hi")
public interface SchedualServiceHi {@RequestMapping(value = "/hi",method = RequestMethod.GET)String sayHiFromClientOne(@RequestParam(value = "name") String name);
}<br>复制代码

在Web层的controller层,对外暴露一个”/hi”的API接口,通过上面定义的Feign客户端SchedualServiceHi 来消费服务。代码如下:

@RestController
public class HiController {@AutowiredSchedualServiceHi schedualServiceHi;@RequestMapping(value = "/hi",method = RequestMethod.GET)public String sayHi(@RequestParam String name){return schedualServiceHi.sayHiFromClientOne(name);}
}复制代码

@RestController public class HiController { @Autowired SchedualServiceHi schedualServiceHi; @RequestMapping(value = "/hi",method = RequestMethod.GET) public String sayHi(@RequestParam String name){ return schedualServiceHi.sayHiFromClientOne(name); } }

hi forezp,i am from port:8762hi forezp,i am from port:8763复制代码

需要JAVASpring Cloud大型企业分布式微服务云构建的B2B2C电子商务社交平台源码请加企鹅求求:一零三八七七四六二六

标签:b2b2c,o2o电子商务,java多用户商城系统,spring cloud,java版社交电子商务

转载于:https://juejin.im/post/5cee45815188256aa76baaff

java版b2b2c社交电商spring cloud分布式微服务 (三) 服务消费者(Feign)相关推荐

  1. java版b2b2c社交电商spring cloud分布式微服务-服务提供与调用

    java版b2b2c社交电商spring cloud分布式微服务源码请加企鹅求求:一零三八七七四六二六.上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册 ...

  2. java版b2b2c社交电商spring cloud分布式微服务:服务消费(Ribbon)

    Spring Cloud Ribbon 电子商务社交平台源码请加企鹅求求:一零三八七七四六二六Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具.它 ...

  3. (十二)java版b2b2c社交电商spring cloud分布式微服务:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪...

    Spring Cloud Sleuth Spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.一般的,一个分布式服务跟踪系统,主要有三部分:数据收集.数据存储和数 ...

  4. java版b2b2c社交电商spring cloud分布式微服务(七)springboot开启声明式事务

    java b2b2c 电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.springboot开启事务很简单,只需要一个注解@Transactional 就可以了.因为在springboot中已经 ...

  5. java版b2b2c社交电商spring cloud分布式微服务(二) 服务消费者(rest+ribbon)

    一.ribbon简介 Ribbon is a client side load balancer which gives you a lot of control over the behaviour ...

  6. (十)java版b2b2c社交电商spring cloud分布式微服务- SSO单点登录之OAuth2.0登录认证(1)...

    之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大家回顾一下知识点:Spring Clou ...

  7. java版b2b2c社交电商spring cloud分布式微服务(八)springboot整合mongodb

    电子商务社交平台源码请加企鹅求求:一零三八七七四六二六 准备工作 安装 MongoDB jdk 1.8 maven 3.0 idea 环境依赖 在pom文件引入spring-boot-starter- ...

  8. java版b2b2c社交电商spring cloud分布式微服务(十)高可用的服务注册中心

    电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.文章 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka) 介绍了服务注册与发现,其中服务注册中心Eure ...

  9. java版b2b2c社交电商spring cloud分布式微服务(五)springboot整合 beatlsql

    电子商务社交平台源码请加企鹅求求:三五三六二四七二五九.BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需 ...

  10. java spring cloud版b2b2c社交电商spring cloud分布式微服务:分布式配置中心

    JAVASpring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六.Spring Cloud Config是Spring Cloud团队创建的一个 ...

最新文章

  1. Java 中关于 try、catch、finally 中的细节分析
  2. AliCloudDB for redis应用场景之存储最新N条聊天记录
  3. 编译参数-ObjC的说明
  4. [BZOJ3595][SCOI2014]方伯伯的OJ(裂点Splay)
  5. GetWeApp聊天室 代码(微信小程序)
  6. selenium用法详解
  7. properties随机数与配置文件占位符
  8. 实际开发中的问题积累【积累】
  9. 使用Spring框架对接Twitter(二)
  10. 神经网络的发展与应用
  11. Android MeasureSpec解析
  12. c标签 if else c标签 总结
  13. 射频可编程数字信号发生器的三大特点
  14. 期货在低位放量下跌的现象(期货高位放量上涨意味什么)
  15. Windows下使用Grub4dos无损(无需格式化)制作Windows/Linux双引导U盘并引导ISO镜像
  16. git PR合并提交(rebase方式)
  17. 课改要实现“软着陆”
  18. 流浪动物救助服务网站设计与实现(J2EE)
  19. 晒晒这些让人崩溃的话
  20. 软件工程个人阅读作业——阅读和调研

热门文章

  1. python算大写字母
  2. 深入剖析MSAA多重采样抗锯齿(multisample anti-aliasing)
  3. Ubuntu ROS下Conda的最好安装方式
  4. 【2019】【论文笔记】基于混合石墨烯金属结构的可重构THz Vivaldi天线——
  5. Strange Country II 【ZOJ - 3332】【竞赛图求解哈密顿通路】
  6. 读书笔记:自动控制原理
  7. Math.floor cei round
  8. 宝塔面板 - 通过宝塔面板安装的mysql 默认密码是什么
  9. 测试cpu多核性能软件,处理器多核性能测试_微星 X99A XPOWER GAMMING TITANIUM_CPUCPU评测-中关村在线...
  10. 澳洲计算机专业排名2015,计算机专业世界排名