@EnableFeignClients

news/2024/12/5 0:01:50/

一、@EnableFeignClients

https://andyboke.blog.csdn.net/article/details/86680622

在Spring cloud应用中,当我们要使用feign客户端时,一般要做以下三件事情:

1. 使用注解@EnableFeignClients启用feign客户端;扫描和注册feign客户端bean定义

@SpringBootApplication

@EnableFeignClients

public class TestApplication {

    public static void main(String[] args) {

        SpringApplication.run(TestApplication.class, args);

    }

}

2. 使用注解@FeignClient 定义feign客户端 ;

示例 : 该例子定义了一个feign客户端,将远程服务http://test-service/test/echo映射为一个本地Java方法调用。

@FeignClient(name = "test-service", path = "/test")

public interface TestService {

    @RequestMapping(value = "/echo", method = RequestMethod.GET)

    TestModel echo(@RequestParam("parameter") String parameter);

}

3. 使用注解@Autowired使用上面所定义feign的客户端 

    @Autowired   

    TestService testService;

 

    public void run()

    {

        // 这里的使用本地Java API的方式调用远程的Restful接口

        TestModel dto = testService.echo("Hello,你好!");

        log.info("echo : {}", dto);

     }

上面的三个步骤,前两个步骤可以理解为定义feign客户端,第三步是使用所定义的feign客户端。通过调试发现,上面第三步所注入的testService是一个代理对象,如下所示 :

testService = {$Proxy66@5502} 

    "HardCodedTarget(type=TestService, name=test-service, url=http://test-service/test)"

 h = {ReflectiveFeign$FeignInvocationHandler@6924} 

  target = {Target$HardCodedTarget@6930} 

  dispatch = {LinkedHashMap@6931}  size = 1

   0 = {LinkedHashMap$Entry@6948} 

    "public abstract xxx.model.TestModel xxx.service.TestService.echo(java.lang.String)" 

该对象会代理客户端完成远程服务方法的调用,那么,该代理对象是如何生成的 ?这篇文章,我们通过源代码分析来回答这些问题。

 












 


http://www.ppmy.cn/news/344573.html

相关文章

linux下通过ssh用户名密码的rsync传输文件方法

一般用rsync传输文件都会使用密钥的方式实现免密码验证,但有些机器由于特殊的原因,不能配置密钥,这时就要用ssh的用户名和密码方式使用rsync 1. 首先,通过ssh 命令登录一次远程的主机,这里假设远程的主机为12.12.12.1…

华夏erp账号任意用户登录

hunter: web.icon"f6efcd53ba2b07d67ab993073c238a11" 访问/jshERP-boot/user/getAllList;.ico接口可查看所有用户账号密码(密码为md5值) GET /jshERP-boot/user/getAllList;.ico HTTP/1.1 Host: xxx User-Agent: Mozilla/5.0 (Windows NT 10.0; Win…

Windows10下安装 Docker Oracle镜像

目录 1.安装docker 2.下载oracle镜像 Oracle 19c安装 第一步:下载镜像 第二步:创建挂载文件 第三步:安装Oracle 1.安装docker Windows安装Docker(图解教程) 1) 下载地址https://www.docker.com/products/docke…

如何在AdsPower中设置易路代理YiLuProxy?

一、基本设置 1.随便拖入一个应用软件到【程序】选项卡,如chrome浏览器,请不要将AdsPower拖入程序里,否者会引起连接不稳定。 2.前往易路代理“设置”页面 ①.代理端口:随机或自定义都可以; ②.转发端口:…

h5-bootstrap开发移动端,电脑开发手机同步运行

因为vscode同步开发pc和移动端在电脑的浏览器上看不是很适配啊,到手机上不同型号还是会有出入,所以想要在边开发,真机上可以看到效果---,方法如下 1-必须保证手机和电脑在同一网段,也就是同一wifi下 2-vscode中安装live server--->html文件通过右键的这个打开, 打开后发现…

5502_图像板学习参考

以下是我调试5502图像板所累积的认识和经验,仅供参考,有错请指正。 前提 1. 请安装CCS和仿真器驱动,并配置CCS为 C5502 XDS510 Emulator 第一个程序------点亮LED 打开工程 LED_TEST和文件 LED_TEST.C ,仔细浏览程序…

modbus数据采集通过http/websocket对外提供访问

本软件是用go语言编写,可以运行在windows、linux等系统上,实现了通过modbus tcp采集modbus从站数据,对外提供http接口给用户查询实时数据和控制modbus地址写值,且还对外提供了websocket服务,用户可以直接通过websocket…

CCS编译错误与解决办法 :fatal error: #error NO CHIP DEFINED

错误内型: "C:/CCStudio_v3.3/C5500/csl/include/csl_chiphal.h", line 201: fatal error: #error NO CHIP DEFINED 解决办法: Project --> Build Options --> Preprocessor --> Pre-define Symbols 中加入CHIP_5502 错误原因分析: 查看文件 C:/CCStud…