Feign入门实例

摘要:
xmlversion=“1.0”encoding=“UTF-8”?

此案例为替换原有的消费者,注册中心和消息提供者延用之前的

注册中心的案例   https://www.cnblogs.com/songlove/p/14793575.html

消息提供者:https://www.cnblogs.com/songlove/p/14794021.html

先创建一个工程,引用maven控制 ,比着之前的消费者的项目增加了一个feign的依赖

1 <dependency>
2     <groupId>org.springframework.cloud</groupId>
3     <artifactId>spring-cloud-starter-openfeign</artifactId>
4 </dependency>

第一步补全pom文件,完整的pom文件内容为

Feign入门实例第1张Feign入门实例第2张
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5     <parent>
 6         <groupId>org.springframework.boot</groupId>
 7         <artifactId>spring-boot-starter-parent</artifactId>
 8         <version>2.5.0</version>
 9         <relativePath/> <!-- lookup parent from repository -->
10     </parent>
11     <groupId>com.ssc</groupId>
12     <artifactId>demo</artifactId>
13     <version>0.0.1-SNAPSHOT</version>
14     <name>demo</name>
15     <description>Demo project for Spring Boot</description>
16     <properties>
17         <java.version>1.8</java.version>
18         <spring-cloud.version>2020.0.3-SNAPSHOT</spring-cloud.version>
19     </properties>
20     <dependencies>
21         <dependency>
22             <groupId>org.springframework.boot</groupId>
23             <artifactId>spring-boot-starter-web</artifactId>
24         </dependency>
25         <dependency>
26             <groupId>org.springframework.cloud</groupId>
27             <artifactId>spring-cloud-starter-openfeign</artifactId>
28         </dependency>
29         <dependency>
30             <groupId>org.springframework.cloud</groupId>
31             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
32         </dependency>
33         <dependency>
34             <groupId>org.springframework.boot</groupId>
35             <artifactId>spring-boot-starter-test</artifactId>
36             <scope>test</scope>
37         </dependency>
38     </dependencies>
39     <dependencyManagement>
40         <dependencies>
41             <dependency>
42                 <groupId>org.springframework.cloud</groupId>
43                 <artifactId>spring-cloud-dependencies</artifactId>
44                 <version>${spring-cloud.version}</version>
45                 <type>pom</type>
46                 <scope>import</scope>
47             </dependency>
48         </dependencies>
49     </dependencyManagement>
50 
51     <build>
52         <plugins>
53             <plugin>
54                 <groupId>org.springframework.boot</groupId>
55                 <artifactId>spring-boot-maven-plugin</artifactId>
56             </plugin>
57         </plugins>
58     </build>
59     <repositories>
60         <repository>
61             <id>spring-snapshots</id>
62             <name>Spring Snapshots</name>
63             <url>https://repo.spring.io/snapshot</url>
64             <releases>
65                 <enabled>false</enabled>
66             </releases>
67         </repository>
68         <repository>
69             <id>spring-milestones</id>
70             <name>Spring Milestones</name>
71             <url>https://repo.spring.io/milestone</url>
72             <snapshots>
73                 <enabled>false</enabled>
74             </snapshots>
75         </repository>
76     </repositories>
77 
78 </project>
pom.xml

第二步、在启动类上增加@EnableFeignClients和@EnableEurekaClient 注解,@EnableFeignClients注解是启用了feign客户端,如果Feign接口与启动类不是在同一个包下,需要增加包的扫描,@EnableFeignClients(basePackages=“com.ssc.demo”)

 1 package com.ssc.demo;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
 6 import org.springframework.cloud.openfeign.EnableFeignClients;
 7 @EnableEurekaClient
 8 @SpringBootApplication
 9 @EnableFeignClients
10 public class DemoApplication {
11 
12     public static void main(String[] args) {
13         SpringApplication.run(DemoApplication.class, args);
14     }
15 
16 }

第三步,创建Feign接口

 1 package com.ssc.demo;
 2 
 3 import org.springframework.cloud.openfeign.FeignClient;
 4 import org.springframework.web.bind.annotation.GetMapping;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.bind.annotation.RequestMethod;
 7 //@FeignClient注解,这个注解标识当前是一个 Feign 的客户端,value 属性是对应的服务名称,也就是你需要调用哪个服务中的接口。
 8 @FeignClient(value = "eureka-user-provide")
 9 public interface UserRemoteClient {
10 //这个位置的请求路径就是,在这个提供者实例下提供具体服务的路径
11     @RequestMapping(value = "/user/hello",method = RequestMethod.GET)
12     String hello();
13 }

第四步,写消费者调用类

package com.ssc.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CallHello {

    @Autowired
    private UserRemoteClient userRemoteClient;
    @GetMapping(value = "/callHello")
    public String calloHello(){
//此时的调用相当于 http://eureka-user-provide/user/hello
        String result=userRemoteClient.hello();
        System.out.println("调用结果:"+result);
        return result;
    }
}

第五步,书写yml配置文件

 1 server:
 2   port: 8099
 3 eureka:
 4   client:
 5     service-url:
 6       defaultZone: http://localhost:8761/eureka
 7   instance:
 8     instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
 9 spring:
10   application:
11     name: feign-user-consumer

第六步启动应用,调用接口。先查看eureka注册中心

Feign入门实例第3张

输入请求路径,查看http://127.0.0.1:8099/callHello,成功调用

Feign入门实例第4张

项目的gitee地址:Feign_demo: 创建一个feign案例 (gitee.com)

参考:http://c.biancheng.net/view/5357.html

免责声明:文章转载自《Feign入门实例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Arrays工具类GDB调试的layout使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

全面解读:微信服务号升级和群发增至4条的应用方法

全面解读:微信服务号升级和群发增至4条的应用方法 摘要:微信公众平台正式公布微信服务号升级的消息,提供高级群发接口,火速华磊初步总结:群发接口的提供意味着企业获得了精准推送的能力、企业获得了每月多次激活粉丝的能力、企业公众号的粉丝活跃度全面提升、公众号的营销核心过程趋于完美。 2014/4/15 21:58分,微信公众平台正式公布微信服务号升级的消息,消...

ActiveMQ 认证(一)

新搭建的ActiveMQ服务,在发布和读取消息时,连接的权限为ActiveMQConnection.DEFAULT_USER和ActiveMQConnection.DEFAULT_PASSWORD。 connectionFactory = new ActiveMQConnectionFactory( ActiveMQConn...

Django知识总结(一)

壹 ● 有关http协议 一 ● 全称 超文本传输协议(HyperText Transfer Protocol) 二 ● 协议 双方遵循的规范 http协议是属于应用层的协议(还有ftp, smtp等), 即浏览器请求消息和服务器响应消息的一系列规则 三 ● http协议的特性 http是无状态、无连接的协议(stateless, c...

一.windows环境下rabbitMQ的的安装和配置

  rabbitMQ是AMQP 0-9-1(高级消息队列协议)的一个实现,使用Erlang语言编写,利用了Erlang的分布式特性。用它来实现分布式消息队列。   1.因为是用Erlang编写的,所以首先要安装 Eralng OTP For Windows,到官网去下载,http://www.erlang.org/ ,进入下载页,看到如下一些版本。   ...

oracle字符集的查看和修改

一、什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响Oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如...

关于2000W数据

前几天在博客园首页看到这个2000W数据的消息,刚好这个学期正在SQL入门,加上好奇心的驱使,把这个下载下来。 一个是600多M的CSV文件,还有一个是1.7G的SQL Server的备份文件,解压后都接近8G了,试着在sql server2000上导入一下,貌似直接就说太多了……汗 所以,只好先看看这个CSV文件了,这个解压后也接近2G了,一般的文本编辑器...