专栏首页大数据学习笔记Spring Cloud 2.x学习笔记:2、feign改进(Greenwich版本)

Spring Cloud 2.x学习笔记:2、feign改进(Greenwich版本)

版权声明:本文为博主原创文章,欢迎转载。 https://blog.csdn.net/chengyuqiang/article/details/90712031

1、Feign简介

Feign 整合了ribbon,具有负载均衡的能力;Feign 采用的是基于接口的注解

2、新建模块

新建一个服务消费者模块consumer-feign,代码结构如下图所示。

2.1 pom文件

<?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.cntaiping.tpa</groupId>
    <artifactId>consumer-feign</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>consumer-feign</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>com.cntaiping.tpa</groupId>
        <artifactId>cloud</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>

</project>

2.2 配置文件application.yml

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8800/eureka/
server:
  port: 8500
spring:
  application:
    name: consumer-feign

2.3 启动类

package com.cntaiping.tpa.consumerfeign;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableFeignClients
public class ConsumerFeignApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerFeignApplication.class, args);
    }

}

2.4 服务消费类

(1)Service层 定义一个feign接口,通过@ FeignClient(“服务名”),来指定消费哪个服务。

package com.cntaiping.tpa.consumerfeign.service;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(value = "producer")
public interface SchedualService {
    @RequestMapping(value = "/get",method = RequestMethod.GET)
    String hello(@RequestParam(value = "name") String name);
}

(2)controller层

package com.cntaiping.tpa.consumerfeign.controller;

import com.cntaiping.tpa.consumerfeign.service.SchedualService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MessageController {

    @Autowired
    SchedualService schedualService;

    @GetMapping(value = "/hello")
    public String hello(@RequestParam String name) {
        return schedualService.hello( name );
    }
}

2.5 运行效果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringCloud 2.x学习笔记:11、断路器聚合监控(Hystrix Turbine)(Greenwich版本)

    参考 英文原文:https://stackabuse.com/spring-cloud-turbine/ 中文版:https://www.jb51.net/...

    程裕强
  • 限流与熔断降级

    发送一次localhost:8087/hello请求(控制台将输出异常信息),比如

    程裕强
  • SpringCloud 2.x学习笔记:10、断路器监控(Hystrix Dashboard)(Greenwich版本)

    Hystrix 已经停止开发了,Hystrix 官方推荐替代的开源组件:Resilience4j(感觉学不动啦) 除了 Resilience4j,还有Spri...

    程裕强
  • 限流与熔断降级

    发送一次localhost:8087/hello请求(控制台将输出异常信息),比如

    程裕强
  • 《SpringCloud篇:001Eureka服务的注册与发现入门篇》

    https://martinfowler.com/articles/microservices.html

  • 06OpenFeign服务接口调用

    http://localhost/consumer/payment/get/130

    Remember_Ray
  • Feign讲解与应用(文末送书)

    Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HT...

    全栈自学社区
  • Spring Boot · Mongo Repository

    本文节选自《Netkiller Java 手札》 http://www.netkiller.cn/java/ 11.12.5.1. MongoTempla...

    netkiller old
  • Spring cloud 之 Feign Client

    本文接选自 《Netkiller Java 手札》 12.2.2. Eureka Client 12.2.2.1. Maven <project xmln...

    netkiller old
  • spring-boot - demo

    当我发现把最初的一个demo整的面目全非的时候,突然想要找一个简单的demo做测试,发现与其在原来的上面该,还不如新建一个demo。 官方入门:http://p...

    Ryan-Miao

扫码关注云+社区

领取腾讯云代金券