CN111414193A - 基于微服务框架的业务系统的实现方法及相关装置 - Google Patents
基于微服务框架的业务系统的实现方法及相关装置 Download PDFInfo
- Publication number
- CN111414193A CN111414193A CN202010121682.7A CN202010121682A CN111414193A CN 111414193 A CN111414193 A CN 111414193A CN 202010121682 A CN202010121682 A CN 202010121682A CN 111414193 A CN111414193 A CN 111414193A
- Authority
- CN
- China
- Prior art keywords
- service
- module
- micro
- framework
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种基于微服务框架的业务系统的实现方法及相关装置,包括:搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到所述目标业务系统。本申请实施例可改进业务代码的复用率,提升业务开发效率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种基于微服务框架的业务系统的实现方法及相关装置。
背景技术
随着互联网的发展和轻量级运行技术的发展,越来越多的微服务框架也开始出现,然而目前常见的服务框架中,业务代码耦合严重,这将直接影响到代码的可维护性和可扩展性,导致开发人员在业务开发时,不得不去关注很多不必要的技术细节,诸如网络连接,代码解析结果等,从而降低了业务开发效率和代码质量。
发明内容
本申请实施例提供了一种基于微服务框架的业务系统的实现方法及相关装置,提高了业务开发效率。
第一方面,本申请实施例提供一种基于微服务框架的业务系统的实现方法,所述方法包括:
搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;
根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;
根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到所述目标业务系统。
第二方面,本申请实施例提供一种基于微服务框架的业务系统的实现装置,包括:搭建单元,用于搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;处理单元,用于根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;以及根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到所述目标业务系统。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口,以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,本申请实施例中,通过搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到所述目标业务系统。可见,本申请实施例可改进业务代码的复用率,提升业务开发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于微服务框架的业务系统的实现方法的流程示意图;
图2是本申请实施例提供的业务系统的示意图;
图3为本申请实施例提供的一种电子设备的结构示意图;
图4为本申请实施例提供了一种基于微服务框架的业务系统的实现装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的电子设备可以包括各种具有无线通信功能的手持设备、车载设备、无线耳机、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS),终端设备(terminaldevice)等等,电子设备例如可以为智能手机、平板电脑等等。为方便描述,上面提到的设备统称为电子设备。
参阅图1,图1为本申请实施例提供的一种基于微服务框架的业务系统的实现方法的流程示意图,所述方法包括:
101、搭建基础微服务框架,所述基础微服务框架包括辅助功能模块。
其中,通过引入jar文件来搭建基础微服务框架,该jar文件包括如core.jar、beans.jar、context.jar、dao.jar、mock.jar等基础jar包以及用于实现辅助功能的各个jar包,搭建基础微服务框架的过程属于现有技术,本申请对此不做展开说明。
可选的,可遍历上述jar文件下各个jar包,提取各jar包的名称,根据jar包的名称定位具有辅助功能的jar包,对具有辅助功能的jar包进行封装,得到各辅助功能模块。辅助功能模块主要用于开发和测试过中,包括接口文档模块、挡板功能模块、mock平台接入模块、代码规范检测模块和ESA调用stub模块等,其中,在业务系统搭建完成后,用户可以用过接口文档模块调用各个接口的接口文档;Mock平台接入模块包括get方法、post方法、header、cookie和重定向等功能,Mock平台接入模块用于在业务系统开发未完成时提供一套可供调试代码的环境,当接入Mock平台后可模拟接口进行Mock接口测试,Mock接口测试是在测试过程中,对于某些不容易构造或者不容易获取的对象创建一个虚拟的对象以便测试的测试方法。在业务系统开发未完成,还未得到可与第三方对接的目标接口时,可通过ESA(ESA是用于服务发布、调用与管理等的一个协议)调用stub存根函数模拟实际接口的调用,从而加速开发并帮助排除故障。代码规范检测用于对代码格式进行检测。
102、根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架。
其中,第一源代码包括各个主功能模块对应的源代码,从第一源代码中分离出各个主功能模块对应的源代码,并对其分别进行编译,得到各个类文件,即为各个主功能模块,同时根据各个主功能模块的定义和功能说明等内容生成配置文件,然后将各主功能模块对应的类文件一起打包得到一个大的jar包,将该jar包导入基础微服务框架中。该jar包独立于基础微服务框架对应的jar文件,因此,该jar包下各个类文件均与基础微服务框架解耦,可脱离该基础微服务框架的环境而运行。
可选的,主功能模块包括权限控制模块、DAO代理模块、异常处理模块、统一协议模块、SPI代理模块、参数校验模块、熔断机制模块、ESA发布模块和任务调度模块。其中,为了解决代码耦合导致的越权访问现象,设置了权限控制模块,权限控制模块可通过白名单配置实现基于角色的权限配置,针对不同的用户角色配置不同的角色校验规则以及不同的角色权限,使得特定的服务只面向具有特定权限的用户角色显示。在微服务框架中可以有多项服务,同一服务中不同角色具有的权限不同,例如对于查询服务,管理员可以查询所有人员信息,普通员工只能查询个人信息,其登录验证的方式也不同,例如可设置管理员登录时需输入登录账号、密码并进行人脸验证,而普通员工输入登录账号和密码即可。DAO代理模块用于数据访问。SPI代理模块为串行外设接口模块。参数校验模块剥离业务代码中的参数校验,使用参数校验器检测参数,当角色变动时,只需运维人员在控制台页面上进行相应的角色修改,并适配修改配置文件即可,无需修改代码,例如,之前只有管理员和普通员工两种角色,现在需要新增部门管理人员这一角色,则只需打开控制台,点击新增角色,输入“部门管理人员”,然后在配置文件中增加对部门管理人员的定义和描述即可,若通过代码实现参数校验,则需要适配修改代码,并将其部署到生产环境或服务器中进行测试,在测试通过后再发布,显然,通过参数校验器检测参数更为便捷高效,不会出现越权现象,且无需开发人员参与,可提高开发人员工作效率。熔断机制模块用于当第三方服务调用慢或者有大量超时,熔断该服务的调用,对于后续调用请求,不再继续调用该第三方服务,直接返回,快速释放资源,如果第三方服务情况好转则恢复调用。当具有特定权限的人员调用某功能时,ESA发布模块通过白名单配置控制该业务功能向白名单中的用户显示。任务调度模块在基于微服务框架构建服务时直接通过接口调用第三方系统,例如,需要查询深圳未来一周天气,则该查询服务直接通过查询接口对接气象局官网(或采用其他方式)来获取查询结果,若直接使用httpClient或ActionClient调用第三方系统则需要花费大量时间处理通讯相关内容,且此部分代码并非业务需求,客户体验也不友好。
103、根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到业务系统。
其中,在得到微服务框架之后,还需要根据需求构建各个业务模块,并将业务模块依赖到微服务框架中。业务模块可以为:登录模块、查询模块、用户管理模块、安全控制模块等。当业务模块较少时,可以对各业务模块逐个进行依赖操作,若业务模块较多,可通过引入maven插件将业务模块批量依赖到微服务框架中。在将业务模块依赖到微服务框架后,业务模块的功能必须依靠微服务框架才能实现。
第二源代码包括各个业务模块对应的源代码,从第二源代码中分离出各个业务功能模块对应的源代码,并对其分别进行编译,得到各个类文件,同时根据各个业务功能模块的定义和功能说明等内容生成配置文件,对各个类文件分别打包,得到多个jar包,多个jar包对应多个业务模块,因为多个jar包间彼此独立,故多个业务模块之间彼此解耦,各业务模块可随时根据需要增添删减,修改。
如图2所示,图2是本申请实施例提供的业务系统的示意图,由图可见,业务系统由微服务框架和业务模块构成,其中,微服务框架包括主功能模块和辅助功能模块。
可以看出,本申请实施例中,通过搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到业务系统。可见,通过将经常复用的业务代码封装成业务模块,可改进业务代码的复用率,提升业务开发效率,提高业务代码质量。
可选的,所述根据第一源代码得到主功能模块,包括:
获取所述第一源代码的存储路径;
根据所述存储路径定位所述第一源代码,并对所述第一源代码进行编译,得到所述主功能模块,其中,所述主功能模块是独立于所述基础微服务框架的类文件。
其中,第一源代码中包括各主功能模块的定义,因此可根据各主功能模块的名称或注解内容进行搜索,从而确定第一源代码的存储路径。在定位到第一源代码后,从第一源代码中分离出各个主功能模块对应的源代码,并对其分别进行编译,得到各个类文件,即为各个主功能模块。然后将各主功能模块对应的类文件打包得到jar包,将该jar包导入基础微服务框架中,该jar包独立于基础微服务框架对应的jar文件。
可见,通过对第一源代码进行编译,从而使得各主功能模块对应的代码层次清晰,彼此解耦。
可选的,所述将所述业务模块依赖到所述微服务框架中,包括:
通过项目管理工具获取所述业务模块的路径;
根据所述业务模块的路径将所述业务模块加载至目标文件下,以使所述业务模块依赖所述目标文件,其中,所述基础微服务框架包括所述项目管理工具和所述目标文件。
其中,在本实施例中,项目管理工具为maven插件,需要在将业务模块依赖到微服务框架中之前将maven插件导入微服务框架中,并将与业务模块对应的jar包的配置信息导入pom.xml文件中,pom.xml描述了项目的的url地址,依赖关系,开发者需要遵循的规则等,之后maven插件读取pom.xml文件中业务模块对应的jar包的路径(groupId项目标识、artifactId项目名称与version项目版本),根据路径定位业务模块对应的jar包,并将该jar包加载至目标文件(项目目录文件)下,如此,业务模块与微服务框架形成依赖关系,在此之后,更新pom.xml文件中业务模块对应的jar包的路径信息。
可见,通过将业务模块加载至目标文件下,可通过目标文件方便查找到业务模块,从而进行调用。
可选的,在所述将所述业务模块依赖到所述微服务框架中之后,所述方法还包括:
将所述业务模块接口化,得到目标接口;
分离所述目标接口和所述目标接口的实现类,并对所述目标接口的实现类进行隐藏。
其中,将业务模块接口化即定义出业务模块对应的接口,并通过业务模块对应的类文件中的class类来对该接口进行实现,如业务模块为天气预报模块,先定义一个天气预报的接口Weather,如下:
然后通过天气预报模块对应的class类WeatherImpl来实现该接口:
在该示例中,分离所述目标接口和所述目标接口的实现类即分离接口Weather和实现类WeatherImpl,分离目标接口和实现类即尽可能的降低目标接口与其对应的实现之间的依赖,以方便移植和修改,对实现类进行隐藏即对实现类进行封装并隐藏,如此可进一步降低目标接口和实现类之间的依赖,用户在使用过程中只需要关心数据输入输出结果,不需要关心如何具体如何实现。在本实施例中,业务模块是对目标接口的实现类封装后的jar包,因此已经对实现类做了封装处理,只需隐藏实现类,即将实现类定义为私有的,没有修饰符。
若对所述业务模块进行更新,在所述将所述业务模块依赖到所述微服务框架中之后,所述方法还包括:
业务模块接口化可使各个业务模块除各自功能之外,还兼具接口功能,可面向接口构建服务,当接收指令,需要调用第三方系统或第三方应用时,通过对应的接口与第三方系统对接,从而通过接口实现调用,例如:需要查询深圳未来3天天气情况,则可通过“查询模块”的“查询接口”对接气象局的天气预报服务,从而确定深圳未来3天的天气。
其中,若需要对业务模块进行更新,则在所述将所述业务模块依赖到所述微服务框架中之后,还包括:
根据所述业务模块的路径获取所述业务模块的类文件;
对所述业务模块的类文件进行编译以实现更新。
其中,在根据更新后的pom.xml文件获取业务模块对应的jar包的路径后,定位业务模块对应的jar包,对其解压得到对应的类文件,获取需求,根据需求对类文件中的实现类进行编译以实现更新。
可见,通过将业务功能模块抽象为接口,用户(开发人员)在业务开发的过程中,只需要调用接口实现,而不使用接口,即只需要知道微服务框架的关键组件和接口,关注接口的输入和输出,不需要关注接口功能具体如何实现,也不需要关注业务方面的技术细节部分如数据异常处理、任务调度等,简化了操作,提高了开发效率。
可选的,在所述对所述目标接口的实现类进行隐藏之后,所述方法还包括:
根据注解标识定位到注解信息;
根据所述业务模块的路径和所述注解信息生成接口文档。
其中,接口文档包括功能说明、系统接口约定、接口数据格式和返回值对照等,在业务系统搭建完成后,用户可通过接口文档模块调用各个接口的接口文档。用户(开发人员)可根据各接口文档了解各接口功能以及各业务模块调用方法等,用户(测试人员)可根据接口文档对接口进行测试。
在将业务模块依赖到微服务框架中之后,通过各业务模块的注解标识定位并获取各业务模块的注解信息,并获取更新后的pom.xml文件中业务模块对应的jar包的路径,根据业务模块的路径和注解信息可生成接口文档。其中,接口文档也可通过其他方式得到,本申请对其获取方式不做限定。
可见,通过这种方式获取接口文档可提升生成文档效率,保证接口和生成的文档一致。
可选的,所在所述将所述业务模块依赖到所述微服务框架中之后,所述方法还包括:
获取所述接口文档,根据所述接口文档确定所述目标接口的接口功能;
根据所述接口功能获取所述目标接口对应的测试用例;
根据所述测试用例执行测试,若测试通过,得到所述目标业务系统。
其中,不同的接口功能对应不同的测试用例,将所需的测试用例预置于微服务框架中,当接口功能开发完毕执行接口测试时,根据接口功能获取对应的测试用例进行测试,在执行测试后,将返回数据(返回值、返回值类型、返回接口),根据返回的数据判断接口能否正常使用。
通常的,在测试环境下(分布式环境)通过远程控制做调试,无法通过设置断点实时查看代码执行过程,只能依赖log来判断代码执行过程,在本申请中,可将测试内容同步到本地实现本地调试,脱离环境依赖,更为便捷。
当开发某一功能的开发人员(后端人员)完成开发工作后,可通过接口和前端人员直接对接调试,现场解决问题,不需要将程序代码上传服务器和和通过服务器部署服务,从而节省调试时间,效率更高,也避免了多人竞争一台服务器,大大缓解了服务器压力,在对微服务框架中各功能模块(主功能模块、辅助功能模块、业务模块)以及接口测试完成后,将开发程序发布到测试环境中进行整体功能验证,通过整体功能验证后即得到目标业务系统。
其中,在将业务模块依赖到微服务框架中后,还需要对微服务框架进行多端适配操作,使微服务框架可在不同的环境中运行,对多端适配过程举例如下:例如在A平台(如本地)上使用A协议(如:超文本传输协议),在B平台上使用B协议(如远程调度协议RPC),现在对传输协议进行配置使之可同时用于A平台和B平台下,具体的,在A平台的配置文件中先对A平台和B平台下的共同参数进行配置(公用组建),然后在配置文件中构建对应于A平台下各个目标接口的适配器类,通过各个适配器类同时实现A平台下各个目标接口和B平台下对应的接口(业务实现),将A协议和B协议统一,得到同时适用于A平台和B平台的新协议(协议转化),将上述公用组建、业务实现以及协议转化部分的代码进行封装,得到协议处理模块,当B平台需要通过接口调用A平台的A协议时,A协议通过协议处理模块转化成B平台可使用的B协议。其中,还可以采取其他方式进行适配操作,本申请对此不做限制。
可见,通过对微服务框架进行测试,可确保各接口和各功能模块的功能,从而得到目标业务系统。
请参阅图3,图3为本申请实施例提供的一种电子设备的结构示意图,如图所示,包括处理器、存储器、通信接口,以及一个或多个程序,所述程序被存储在所述存储器中,并且被配置由所述处理器执行。所述程序包括用于执行以下步骤的指令:
搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;
根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;
根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到目标业务系统。
在一个可能的示例中,在所述根据第一源代码得到主功能模块方面,所述程序包括用于执行以下步骤的指令:
获取所述第一源代码的存储路径;
根据所述存储路径定位所述第一源代码,并对所述第一源代码进行编译,得到所述主功能模块,其中,所述主功能模块是独立于所述基础微服务框架的类文件。
在一可能的示例中,在所述将所述业务模块依赖到所述微服务框架中方面,所述程序包括用于执行以下步骤的指令:
通过项目管理工具获取所述业务模块的路径;
根据所述业务模块的路径将所述业务模块加载至目标文件下,以使所述业务模块依赖所述目标文件,其中,所述基础微服务框架包括所述项目管理工具和所述目标文件。
在一个可能的示例中,在所述将所述业务模块依赖到所述微服务框架中之后,所述程序包括用于执行以下步骤的指令:
将所述业务模块接口化,得到目标接口;
分离所述目标接口和所述目标接口的实现类,并对所述目标接口的实现类进行隐藏。
在一可能的示例中,在所述对所述目标接口的实现类进行隐藏之后,所述程序还包括用于执行以下步骤的指令:
根据注解标识定位到注解信息;
根据所述业务模块的路径和所述注解信息生成接口文档。
在一可能的示例中,若对所述业务模块进行更新,在所述将所述业务模块依赖到所述微服务框架中之后,所述程序还包括用于执行以下步骤的指令:
根据所述业务模块的类文件的路径获取所述业务模块的实现类;
对所述业务模块的实现类进行编译以实现更新。
在一个可能的示例中,在所述将所述业务模块依赖到所述微服务框架中之后,所述程序还包括用于执行以下步骤的指令:
获取所述接口文档,根据所述接口文档确定所述目标接口的接口功能;
根据所述接口功能获取所述目标接口对应的测试用例;
根据所述测试用例执行测试,若测试通过,得到所述目标业务系统。
上述主要从方法执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
与上述一致的,请参阅图4,图4为本申请实施例提供了一种基于微服务框架的业务系统的实现装置400的结构示意图,包括:
搭建单元401,用于搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;
处理单元402,用于根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;以及根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到目标业务系统。
在一可能的示例中,在所述根据第一源代码得到主功能模块方面,所述处理单元402具体用于:
获取所述第一源代码的存储路径;
根据所述存储路径定位所述第一源代码,并对所述第一源代码进行编译,得到所述主功能模块,其中,所述主功能模块是独立于所述基础微服务框架的类文件。
在一可能的示例中,在所述将所述业务模块依赖到所述微服务框架中方面,所述处理单元402具体用于:
通过项目管理工具获取所述业务模块的路径;
根据所述业务模块的路径将所述业务模块加载至目标文件下,以使所述业务模块依赖所述目标文件,其中,所述基础微服务框架包括所述项目管理工具和所述目标文件。
在一可能的示例中,在所述将所述业务模块依赖到所述微服务框架中之后,所述处理单元402具体用于:
将所述业务模块接口化,得到目标接口;
分离所述目标接口和所述目标接口的实现类,并对所述目标接口的实现类进行隐藏。
在一个可能的示例中,在所述对所述目标接口的实现类进行隐藏之后,所述处理单元402具体用于:
根据注解标识定位到注解信息;
根据所述业务模块的路径和所述注解信息生成接口文档。
在一可能的示例中,若对所述业务模块进行更新,在所述将所述业务模块依赖到所述微服务框架中之后,所述处理单元402还用于:
根据所述业务模块的类文件的路径获取所述业务模块的实现类;
对所述业务模块的实现类进行编译以实现更新。
在一可能的示例中,在所述将所述业务模块依赖到所述微服务框架中之后,所述处理单元402还用于:
获取所述接口文档,根据所述接口文档确定所述目标接口的接口功能;
根据所述接口功能获取所述目标接口对应的测试用例;
根据所述测试用例执行测试,若测试通过,得到所述目标业务系统。
可以看出,本申请实施例中,通过搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到业务系统。可见,通过将经常复用的业务代码封装成业务模块,可改进业务代码的复用率,提升业务开发效率,提高业务代码质量。
本申请实施例还提供一种计算机可读存储介质,存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种基于微服务框架的业务系统的实现方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种基于微服务框架的业务系统的实现方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种基于微服务框架的业务系统的实现方法,其特征在于,所述方法包括:
搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;
根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;
根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到目标业务系统。
2.根据权利要求1所述的方法,其特征在于,所述根据第一源代码得到主功能模块,包括:
获取所述第一源代码的存储路径;
根据所述存储路径定位所述第一源代码,并对所述第一源代码进行编译,得到所述主功能模块,其中,所述主功能模块是独立于所述基础微服务框架的类文件。
3.根据权利要求1所述的方法,其特征在于,所述将所述业务模块依赖到所述微服务框架中,包括:
通过项目管理工具获取所述业务模块的路径;
根据所述业务模块的路径将所述业务模块加载至目标文件下,以使所述业务模块依赖所述目标文件,其中,所述基础微服务框架包括所述项目管理工具和所述目标文件。
4.根据权利要求1所述的方法,其特征在于,在所述将所述业务模块依赖到所述微服务框架中之后,所述方法还包括:
将所述业务模块接口化,得到目标接口;
分离所述目标接口和所述目标接口的实现类,并对所述目标接口的实现类进行隐藏。
5.根据权利要求4所述的方法,其特征在于,在所述对所述目标接口的实现类进行隐藏之后,所述方法还包括:
根据注解标识定位到注解信息;
根据所述业务模块的路径和所述注解信息生成接口文档。
6.根据权利要求4所述的方法,其特征在于,若对所述业务模块进行更新,在所述将所述业务模块依赖到所述微服务框架中之后,所述方法还包括:
根据所述业务模块的路径获取所述业务模块的类文件;
对所述业务模块的类文件进行编译以实现更新。
7.根据权利要求5所述的方法,其特征在于,在所述将所述业务模块依赖到所述微服务框架中之后,所述方法还包括:
获取所述接口文档,根据所述接口文档确定所述目标接口的接口功能;
根据所述接口功能获取所述目标接口对应的测试用例;
根据所述测试用例执行测试,若测试通过,得到所述目标业务系统。
8.一种基于微服务框架的业务系统的实现装置,其特征在于,包括:
搭建单元,用于搭建基础微服务框架,所述基础微服务框架包括辅助功能模块;
处理单元,用于根据第一源代码得到主功能模块,将所述主功能模块导入所述基础微服务框架,得到微服务框架;以及根据第二源代码得到业务模块,将所述业务模块依赖到所述微服务框架中,得到所述业务系统。
9.一种电子设备,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-7任一项所述的方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010121682.7A CN111414193A (zh) | 2020-02-26 | 2020-02-26 | 基于微服务框架的业务系统的实现方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010121682.7A CN111414193A (zh) | 2020-02-26 | 2020-02-26 | 基于微服务框架的业务系统的实现方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111414193A true CN111414193A (zh) | 2020-07-14 |
Family
ID=71492827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010121682.7A Pending CN111414193A (zh) | 2020-02-26 | 2020-02-26 | 基于微服务框架的业务系统的实现方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414193A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112051988A (zh) * | 2020-09-15 | 2020-12-08 | 北京达佳互联信息技术有限公司 | 模块处理方法、装置及服务器 |
CN112230916A (zh) * | 2020-10-10 | 2021-01-15 | 湖南皖湘科技有限公司 | 一种快速生成用户自定义网页的方法 |
CN112230988A (zh) * | 2020-10-16 | 2021-01-15 | 蜂助手股份有限公司 | 接口文档的生成方法、装置、计算机设备和存储介质 |
CN112416321A (zh) * | 2020-11-18 | 2021-02-26 | 青岛海尔科技有限公司 | 应用生成方法、装置和存储介质及电子装置 |
CN112487392A (zh) * | 2020-12-08 | 2021-03-12 | 浪潮云信息技术股份公司 | 一种前端实现管理系统权限控制方法 |
CN112506560A (zh) * | 2020-12-15 | 2021-03-16 | 上海银基信息安全技术股份有限公司 | 微服务jar包管理方法、装置及计算机设备 |
CN113010284A (zh) * | 2021-03-04 | 2021-06-22 | 万翼科技有限公司 | 微服务模块的调度方法及装置、存储介质、电子装置 |
CN113010329A (zh) * | 2021-02-07 | 2021-06-22 | 天翼物联科技有限公司 | 一种基于物联网的业务实现方法、系统、设备及存储介质 |
CN113553064A (zh) * | 2021-07-07 | 2021-10-26 | 北京计算机技术及应用研究所 | 一种web前端代码转换方法 |
CN114115890A (zh) * | 2021-10-28 | 2022-03-01 | 东莞中科云计算研究院 | 微服务开发方法及系统 |
CN115562641A (zh) * | 2022-10-27 | 2023-01-03 | 中电金信软件有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN112051988B (zh) * | 2020-09-15 | 2024-10-25 | 北京达佳互联信息技术有限公司 | 模块处理方法、装置及服务器 |
-
2020
- 2020-02-26 CN CN202010121682.7A patent/CN111414193A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112051988A (zh) * | 2020-09-15 | 2020-12-08 | 北京达佳互联信息技术有限公司 | 模块处理方法、装置及服务器 |
CN112051988B (zh) * | 2020-09-15 | 2024-10-25 | 北京达佳互联信息技术有限公司 | 模块处理方法、装置及服务器 |
CN112230916A (zh) * | 2020-10-10 | 2021-01-15 | 湖南皖湘科技有限公司 | 一种快速生成用户自定义网页的方法 |
CN112230988A (zh) * | 2020-10-16 | 2021-01-15 | 蜂助手股份有限公司 | 接口文档的生成方法、装置、计算机设备和存储介质 |
CN112416321B (zh) * | 2020-11-18 | 2023-06-16 | 青岛海尔科技有限公司 | 应用生成方法、装置和存储介质及电子装置 |
CN112416321A (zh) * | 2020-11-18 | 2021-02-26 | 青岛海尔科技有限公司 | 应用生成方法、装置和存储介质及电子装置 |
CN112487392A (zh) * | 2020-12-08 | 2021-03-12 | 浪潮云信息技术股份公司 | 一种前端实现管理系统权限控制方法 |
CN112506560A (zh) * | 2020-12-15 | 2021-03-16 | 上海银基信息安全技术股份有限公司 | 微服务jar包管理方法、装置及计算机设备 |
CN113010329A (zh) * | 2021-02-07 | 2021-06-22 | 天翼物联科技有限公司 | 一种基于物联网的业务实现方法、系统、设备及存储介质 |
CN113010284A (zh) * | 2021-03-04 | 2021-06-22 | 万翼科技有限公司 | 微服务模块的调度方法及装置、存储介质、电子装置 |
CN113553064A (zh) * | 2021-07-07 | 2021-10-26 | 北京计算机技术及应用研究所 | 一种web前端代码转换方法 |
CN114115890A (zh) * | 2021-10-28 | 2022-03-01 | 东莞中科云计算研究院 | 微服务开发方法及系统 |
CN115562641A (zh) * | 2022-10-27 | 2023-01-03 | 中电金信软件有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN115562641B (zh) * | 2022-10-27 | 2024-05-10 | 中电金信软件有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414193A (zh) | 基于微服务框架的业务系统的实现方法及相关装置 | |
CN111414407A (zh) | 数据库的数据查询方法、装置、计算机设备及存储介质 | |
CN105389263B (zh) | 应用软件权限监控方法、系统及设备 | |
CN107634947A (zh) | 限制恶意登录或注册的方法和装置 | |
CN110780856B (zh) | 一种基于微服务的用电数据发布平台 | |
CN113536185B (zh) | 应用页面的加载方法、存储介质、及其相关设备 | |
CN110955600A (zh) | 接口测试方法及装置 | |
CN110309931A (zh) | 一种业务优化方法及装置 | |
CN101930361B (zh) | 在线数据存储服务提供方法及系统 | |
CN113641414A (zh) | 物联网设备接入方法、装置、计算机设备及存储介质 | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
CN112559344A (zh) | 远程mock测试方法及系统 | |
CN115269411A (zh) | 一种业务测试方法、装置、电子设备和存储介质 | |
CN107145373A (zh) | 一种将游戏软件接入目标渠道sdk的方法及装置 | |
CN113296744A (zh) | 应用开发系统及方法 | |
CN116700907B (zh) | 服务调用需求文档存储方法、装置、电子设备和可读介质 | |
CN111045928B (zh) | 一种接口数据测试方法、装置、终端及存储介质 | |
CN116795701A (zh) | 一种接口程序的通用测试实例的生成方法和装置 | |
CN116346660A (zh) | 基于依赖替换服务的数据处理方法、装置、设备及介质 | |
KR101442000B1 (ko) | 분리 실행 기반의 컨텐츠 등록 서버, 그 방법 및 그 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체 | |
CN108052842B (zh) | 签名数据的存储、验证方法及装置 | |
CN110275701A (zh) | 数据处理方法、装置、介质和计算设备 | |
CN116501311A (zh) | 代码生成方法、装置、计算及存储介质及电子设备 | |
CN111427770B (zh) | 一种资源测试方法及相关设备 | |
CN109145591A (zh) | 应用程序的插件加载方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |