一种基于自定义插件动态管理Feign接口调用地址的方法
文献发布时间:2023-06-19 18:35:48
技术领域
本发明涉及计算机技术领域,具体为一种基于自定义插件动态管理Feign接口调用地址的方法。
背景技术
目前SpringBoot微服务项目之间接口远程调用所通常采用的SpringCloud的Feign技术,本地开发在启动多个微服务相互调用或者调用外部Feign接口时,需要手动修改Feign接口的注解@FeignClient的url值。
具体缺陷就在于:经常手动修改,多次重启服务,花费较多时间不说,还容易把修改后的文件提交到主干分支上,对其它环境的测试运行产生影响,人为失误增加。
具体缺陷的技术原因是:大多数基于SpringCloud微服务架构的开发团队,都不会自己搭建本地注册中心,而是使用测试环境的注册中心,为了避免本地环境的服务对测试环境的影响,通常会关闭服务自动注册,此时微服务之间的调用就会调用失败而需要手动修改Feign接口的url值。
发明内容
本发明的目的在于提供一种基于自定义插件动态管理Feign接口调用地址的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于自定义插件动态管理Feign接口调用地址的方法,包括如下步骤:
S1、生成自定义Stater;
S11、基于Spring Initializr创建maven工程;
S12、引入依赖;
S13、创建类,用于读取配置并封装成属性;
S14、创建子类,继承Feign.Builder,注入到spring容器中,并注入配置类,重写Feign.Builder的target方法;
S15、用System类的API判断是否是Linux环境;
S16、根据target方法的入参对象,从配置类中读取配置的服务与IP端口的映射关系,匹配到配置的地址;
S17、完成修改target对象的url值,交由Spring管理;
S18、注入okHttp3作为Feign的实现调用类,交由Spring管理;
S2、在当前微服务项目中使用自定义插件。
所述步骤S2中包括以下步骤:
S21、在当前微服务项目中Pom文件Maven中引入自定义插件的依赖;
S22、在当前微服务项目的配置文件中写上服务名与服务调用地址的映射;
S23、在当前为服务项目的配置文件中设置开关插件属性。
所述步骤S12中,所引入的依赖包括但不限于spring-boot-starter-web、spring-cloud-starter-openfeign、okhttp、feign-okhttp。
所述步骤S15中,判断是否为Linux环境以确保在本地使用。
与现有技术相比,本发明的有益效果是:本方法采用JDK动态代理技术、替换Feign默认实现,解决了SpringBoot微服务项目间远程接口本地调用Feign方法使用时要手动修改Feign接口注解的url属性的问题,避免了频繁改动非业务代码,影响自测进度,还容易误提交的情况,有效减少了开发人员对配置化调用外部Feign接口测试时所耗费的时间,提升开发人员专注于业务代码的效率。
附图说明
图1为本发明的流程示意图;
图2为本发明的步骤S1流程示意图;
图3为本发明的步骤S2流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:请参阅图1-3,本发明提供一种技术方案:一种基于自定义插件动态管理Feign接口调用地址的方法,包括如下步骤:
S1、生成自定义Stater;
S11、基于Spring Initializr创建maven工程;
S12、引入依赖;所引入的依赖包括但不限于spring-boot-starter-web、spring-cloud-starter-openfeign、okhttp、feign-okhttp;
S13、创建类,用于读取配置并封装成属性;
S14、创建子类,继承Feign.Builder,注入到spring容器中,并注入配置类,重写Feign.Builder的target方法;
S15、为了确保在本地使用,用System类的API判断是否是Linux环境;
S16、根据target方法的入参对象,从配置类中读取配置的服务与IP端口的映射关系,匹配到配置的地址;
S17、完成修改target对象的url值,交由Spring管理;
S18、注入okHttp3作为Feign的实现调用类,交由Spring管理;
S2、在当前微服务项目中使用自定义插件;
具体包括以下步骤:
S21、在当前微服务项目中Pom文件Maven中引入自定义插件的依赖;
S22、在当前微服务项目的配置文件中写上服务名与服务调用地址的映射;
S23、在当前为服务项目的配置文件中设置开关插件属性。
业务工程引入该Stater工程后,Feign接口实际调用地址都会因与配置文件内容匹配而进行实际修改。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。