feign代码自动生成插件
2020-12-09 17:18
1281 查看
简介
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 56c SourceFeignClient extends SourceClient { }
此处需要添加
contextId,否则的话
feign会生成两个同名的
bean。
相关文章推荐
- maven插件--MyBatis自动生成代码
- Mybatis 自动生成代码工具--mybatis-gennerator插件
- maven插件-利用mybatis-generator自动生成代码
- 解决IDEA的Maven项目mybatis-generator插件自动生成代码出现generate failed: Exception getting JDBC Driver问题
- mybatis generator maven插件自动生成代码
- myEclipse7.5中安装 javascript,extjs的代码自动提示spket插件和extjs desiner可视化代码生成工具,extjs的一个很好的学习视频资源地址
- Spring Boot (七)MyBatis代码自动生成和辅助插件
- spring boot中使用generator插件自动生成代码
- android studio 插件开发(自动生成框架代码插件)
- idea使用generator插件自动生成代码工具遇到的问题
- maven+mybatis+mybatis-generator+sql server 2005自动生成代码,加上自定义分页插件和批量插入更新插件
- Android Studio 自动生成布局代码插件
- 【mybatis源码学习】利用maven插件自动生成mybatis代码
- Android Studio插件-自动根据布局生成Activity等代码(开源)
- maven插件mybatis-generator自动生成代码
- Android Studio通过插件自动生成Pracelable的模板代码
- MyBatis代码自动生成(利用eclipse插件)
- AutoCode (vs插件)自动生成代码插件 下载及使用教程(C#版)
- Idea 使用mybatis-generator 插件自动生成代码
- mybatis-generator 代码自动生成插件