简介

feign对微服务之间的http调用做了一层封装,如果B项目想调用A项目的一个web服务,只需要编写对应的接口并标注FeignClient注解。但如果接口发生了变更,对应的Feign代码往往会忘记修改,而且问题往往在服务启动之后才能发现。

feign-maven-plugin根据当前项目的jar包,自动生成对应feign部分的代码,并install到本地仓库。使用时,只需要在pom.xml中添加对应的依赖,在项目中继承自动生成的Feign接口,添加FeignClient注解即可。

如何使用

生成feign工程并添加依赖

在你需要生成对应feign代码的项目pom.xml文件中添加以下配置。我们暂且称其为feign源工程,根据源工程生成feign工程,我们会在feign使用工程中调用feign工程中的代码。

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.github.dewxin</groupId>
<artifactId>feign-maven-plugin</artifactId>
<version>1.0.0</version><!-- 使用最新版本 -->
<executions>
<execution>
<goals>
<goal>feign</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>

注意:此处<plugin>标签需要放置在spring-boot-maven-plugin之后。

在项目根目录,使用mvn packge对项目进行打包。控制台输出观察到以下日志则表示生成的feign工程已经install本地仓库

[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] BUILD SUCCESS
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time: 3.944 s
[INFO] [INFO] Finished at: 2020-12-08T20:09:55+08:00
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] <<< <<< finish phase maven-install <<< <<<

假如feign源工程的pom部分配置如下:

<groupId>source-groupId</groupId>
<artifactId>source-artifactId</artifactId>
<version>1.0.2</version>

那么生成的feign工程对应pom配置会是这样:除了artifactId根据原有的值添加-feign后缀外,其余的部分不发生改变。

<groupId>source-groupId</groupId>
<artifactId>source-artifactId-feign</artifactId>
<version>1.0.2</version>

feign使用工程中 只需要添加如下的依赖即可以使用,需要注意的是生成的feign工程会被install到本地仓库。

<dependency>
<groupId>source-groupId</groupId>
<artifactId>source-artifactId-feign</artifactId>
<version>1.0.2</version>
</dependency>

如果你在application.properties中配置的spring.application.name的值为SERVICE-SOURCE,SOURCE-SERVICE,source,SOURCE中的任意一个,那么生成对应feign接口的名字则为SourceClient

import com.github.dewxin.generated.auto_client.SourceClient;

@FeignClient(value="SERVICE-SOURCE", contextId = "feign")
public interface SourceFeignClient extends SourceClient {
}

此处需要添加 contextId,否则的话feign会生成两个同名的bean

feign代码自动生成插件的更多相关文章

  1. mybatis-generator 代码自动生成插件

    Hibernate 可以选择MyEclipse Datebase Explorer 或者是 Hibernate-tools 等工具来自动生成映射文件和实体类. mybatis 当然也要有!下面简单介绍 ...

  2. Mybatis代码自动生成插件使用

    1.配置pom.xml 添加mybatis-generator-maven-plugin到pom.xml. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...

  3. 基于eclipse的mybatis映射代码自动生成的插件

    基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...

  4. 基于eclipse的mybatis映射代码自动生成的插件http://blog.csdn.net/fu9958/article/details/7521681

    基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...

  5. Spring Boot (七)MyBatis代码自动生成和辅助插件

    一.简介 1.1 MyBatis Generator介绍 MyBatis Generator 是MyBatis 官方出品的一款,用来自动生成MyBatis的 mapper.dao.entity 的框架 ...

  6. MyBatis代码自动生成

    MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实 ...

  7. Springboot 系列(十一)使用 Mybatis(自动生成插件) 访问数据库

    1. Springboot mybatis 介绍 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数获取 ...

  8. Mybatis最入门---代码自动生成(generatorConfig.xml配置)

    [一步是咫尺,一步即天涯] 经过前文的叙述,各位看官是不是已经被Mybatis的强大功能给折服了呢?本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成.这里的代码自动生成包括,与数据库一 ...

  9. Mybatis 代码自动生成(generatorConfig.xml配置)

    博客推荐: Mybatis最入门---代码自动生成(generatorConfig.xml配置) MyBatis Generator generatorConfig.xml配置详解 pom.xml&l ...

随机推荐

  1. Mac OS终端利器 iTem2 配置大全

    转载链接:https://www.cnblogs.com/diyxiaoshitou/p/9017413.html 之前一直使用 Mac OS 自带的终端,用起来虽然有些不太方便,但总体来说还是可以接 ...

  2. 【干货!!】十分钟带你搞懂 Java AQS 核心设计与实现!!!

    前言 这篇文章写完放着也蛮久的了,今天终于发布了,对于拖延症患者来说也真是不容易-哈哈哈. 言归正传,其实吧..我觉得对于大部分想了解 AQS 的朋友来说,明白 AQS 是个啥玩意儿以及为啥需要 AQ ...

  3. sqlilab less11-less18

    less-11 uname和passwd直接带入查询,万能密码 sqlmap自动搜索表单,或者抓包后用-r参数 less-12 post数据用小括号进行包裹,构造万能密码") or 1=1 ...

  4. IMX8移植cpufreq子系统

    一.简介         CPUFreq子系统位于 drivers/cpufreq目录下,负责进行运行过程中CPU频率和电压的动态调整,即DvFS( Dynamic Voltage Frequency ...

  5. EasyRecovery扫描预览功能,助你选择需要的数据恢复

    说到数据恢复,很多人都会选择EasyRecovery,EasyRecovery作为一个功能性还不错的数据恢复软件,能够帮你恢复丢失的数据以及重建文件系统. 在数据恢复的同时,EasyRecovery还 ...

  6. Folx好用的下载功能介绍

    Folx作为一款使用便捷的Mac系统下载软件,为用户提供了网页链接捕获.种子文件下载.智能标签等功能,而其Folx专业版更为用户提供了智能控制速度.计划下载任务.种子文件搜索下载等更加智能化的功能. ...

  7. Redis多线程原理详解

    本篇文章为你解答一下问题: 0:redis单线程的实现流程是怎样的? 1:redis哪些地方用到了多线程,哪些地方是单线程? 2:redis多线程是怎么实现的? 3:redis多线程是怎么做到无锁的? ...

  8. centons 7 清机 脚本

    #/bin/bash##################################初始化系统###################setenforce 0 yum install -y yum- ...

  9. yii2.0 设置默认路由

    在config/web.php 添加 $config = [ 'defaultRoute' => 'login/login', ];

  10. php8.0正式版新特性和性能优化学习

    前言 PHP团队宣布PHP8正式GA(链接).php的发展又开启了新的篇章,PHP8.0.0版本引入了一些重大变更及许多新特性和性能优化机制.火速学习下~ JIT(Just in Time Compi ...