feign代码自动生成插件
简介
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代码自动生成插件的更多相关文章
- mybatis-generator 代码自动生成插件
Hibernate 可以选择MyEclipse Datebase Explorer 或者是 Hibernate-tools 等工具来自动生成映射文件和实体类. mybatis 当然也要有!下面简单介绍 ...
- 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 ...
- 基于eclipse的mybatis映射代码自动生成的插件
基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...
- 基于eclipse的mybatis映射代码自动生成的插件http://blog.csdn.net/fu9958/article/details/7521681
基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...
- Spring Boot (七)MyBatis代码自动生成和辅助插件
一.简介 1.1 MyBatis Generator介绍 MyBatis Generator 是MyBatis 官方出品的一款,用来自动生成MyBatis的 mapper.dao.entity 的框架 ...
- MyBatis代码自动生成
MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实 ...
- Springboot 系列(十一)使用 Mybatis(自动生成插件) 访问数据库
1. Springboot mybatis 介绍 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数获取 ...
- Mybatis最入门---代码自动生成(generatorConfig.xml配置)
[一步是咫尺,一步即天涯] 经过前文的叙述,各位看官是不是已经被Mybatis的强大功能给折服了呢?本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成.这里的代码自动生成包括,与数据库一 ...
- Mybatis 代码自动生成(generatorConfig.xml配置)
博客推荐: Mybatis最入门---代码自动生成(generatorConfig.xml配置) MyBatis Generator generatorConfig.xml配置详解 pom.xml&l ...
随机推荐
- bWAPP----OS Command Injection
OS Command Injection 界面: 给一个域名,它帮你返回DNS 代码: 1 <div id="main"> 2 3 <h1>OS Comma ...
- get_object_vars
get_object_vars()
- FL Studio钢琴卷轴之刷子工具以及其他
上一篇文章我们重点讲解了FL Studio钢琴卷轴的画笔工具,今天我们就来讲解钢琴卷轴窗口中剩下的工具.由于接下来的工具都很简单,所以我们将放在一起讲,现在就和小编一起来看看FL Studio钢琴卷轴 ...
- ppt-1 操作界面与基本操作
1.Ctrl+N快速建立新文档 2.新模板:文件--新建--可免费搜索.下载新模板 3.恢复未保存的演示文稿 文件--打开(首先看到的是近期使用的演示文稿,)--鼠标滚动至末尾,可看到"恢复 ...
- DC靶机1-9合集
DC1 文章前提概述 本文介绍DC-1靶机的渗透测试流程 涉及知识点(比较基础): nmap扫描网段端口服务 msf的漏洞搜索 drupal7的命令执行利用 netcat反向shell mysql的基 ...
- Javascript严格模式与一般模式的区别
严格模式是指使代码在严格条件下运行.如果你在JavaScript脚本的头部看到"use strict",那么就表明当前处于严格模式下.严格模式主要是为了消除JavaScript语法 ...
- Mac 上超好用的代码对比工具 beyond compare,对比json差异
导读 昨天下午,公司业务跑不通,然后开发组长让架构师联系我,给我发一个json和部署到dev上的微服务url,让我去测试下,将发来的json放到json.cn上愣是解析不出来,我就用之前的json请求 ...
- AA:白细胞计数
总时间限制: 1000ms 内存限制: 65536kB 描述 医院采样了某临床病例治疗期间的白细胞数量样本n份,用于分析某种新抗生素对该病例的治疗效果.为了降低分析误差,要先从这n份样本中去除一个 ...
- sentinel快速入门
转载:https://blog.csdn.net/noaman_wgs/article/details/103328793 https://github.com/alibaba/Sentinel/wi ...
- 【刷题笔记】DP优化-斜率优化
斜率优化,是一种利用斜率的优化(废话) 关于数论:咕咕咕 部分内容参考自学长 如果有这样的一个状态转移方程: \[f[i]=\min\limits_{j=L_j}^{R_j}\{f[j]+val(j, ...