CN110187902B - 基于spring boot的项目改造方法、装置、设备及存储介质 - Google Patents
基于spring boot的项目改造方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110187902B CN110187902B CN201910301173.XA CN201910301173A CN110187902B CN 110187902 B CN110187902 B CN 110187902B CN 201910301173 A CN201910301173 A CN 201910301173A CN 110187902 B CN110187902 B CN 110187902B
- Authority
- CN
- China
- Prior art keywords
- module
- modules
- codes
- application program
- independent
- 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.)
- Active
Links
- 238000011426 transformation method Methods 0.000 title abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 83
- 238000011161 development Methods 0.000 claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 13
- 230000004048 modification Effects 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 10
- 238000002715 modification method Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 238000011084 recovery Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 23
- 230000008878 coupling Effects 0.000 description 11
- 238000010168 coupling process Methods 0.000 description 11
- 238000005859 coupling reaction Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001178520 Stomatepia mongo Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Abstract
本发明公开了一种基于spring boot的项目改造方法、装置、计算机设备及存储介质,所述方法包括:获取应用程序的程序代码;对程序代码进行解耦,获取解耦之后对应于应用程序各模块的模块代码;获取预设的spring boot框架;将各模块的模块代码分别填充至spring boot框架,生成对应于各模块的独立模块;基于独立模块更新应用程序。本发明通过对应用程序的程序代码进行解耦,进而生成应用程序各模块的模块代码,并引入spring boot框架,将模块代码填充至spring boot框架,即可以生成独立于应用程序的独立模块,以便于对独立模块单独发布版署,且仅通过单独发布独立模块的版署即可对应用程序进行更新,提升应用程序的开发和更新效率,降低更新所带来的风险,增强用户体验。
Description
技术领域
本发明涉及开发领域,尤其涉及一种基于spring boot(一种研发框架,能够被任意项目的构建系统所使用)的项目改造方法、装置、设备及存储介质。
背景技术
现今的寿险销售应用程序的开发或修改完善采用pafa(平安基础架构,Ping AnFoundation Architecture)框架,在通过JavaEE(Java企业应用)服务器端组件模型将已经编辑完成的程序代码打包发送至服务器,从而完成寿险销售应用程序的开发或修改完善,但是pafa框架的有多个模块,且所有模块均耦合在一起,无法单独将其中的移动终端模块的程序代码发送至服务器以完成线上程序的更新,因此需要一种可以单独将寿险应用程序中的移动终端模块的程序代码发送至服务器,以完成线上程序更新的方法,提高寿险销售应用程序的开发或修改完善效率,并降低开发或修改完善应用程序的工作量。
发明内容
基于此,本发明提供一种基于spring boot的项目改造方法、装置、设备及存储介质,用于生成可以独立更新的所述应用程序的独立模块,以便于通过对各独立模块的更新而单独发布版署,提升所述应用程序的开发和更新效率,降低更新所带来的风险,增强用户体验。
一种基于spring boot的项目改造方法,包括:
获取应用程序的程序代码;
对所述程序代码进行解耦,获取解耦之后对应于所述应用程序各模块的模块代码;所述应用程序中包含至少两个所述模块;
获取预设的spring boot框架;
将各所述模块的所述模块代码分别填充至所述spring boot框架,生成对应于各所述模块的独立模块;
基于独立更新的各所述独立模块更新所述应用程序。
一种基于spring boot的项目改造装置,包括:
代码获取模块,用于获取应用程序的程序代码;
解耦模块,用于对所述程序代码进行解耦,获取解耦之后对应于所述应用程序各模块的模块代码;所述应用程序中包含至少两个所述模块;
框架获取模块,用于获取预设的spring boot框架;
填充模块,用于将各所述模块的所述模块代码分别填充至所述spring boot框架,生成对应于各所述模块的独立模块;
独立更新模块,用于基于独立更新的各所述独立模块更新所述应用程序。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于spring boot的项目改造方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于spring boot的项目改造方法的步骤。
上述基于spring boot的项目改造方法、装置、计算机设备及存储介质,通过对应用程序的程序代码进行解耦,进而生成所述应用程序各模块的模块代码,并引入springboot框架,将所述模块代码填充至所述spring boot框架,即可以独立更新的所述应用程序的独立模块,以便于通过对各独立模块的更新单独发布版署,且仅通过单独发布所述独立模块的版署即可对所述应用程序进行更新,提升所述应用程序的开发和更新效率,降低更新所带来的风险,增强用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中基于spring boot的项目改造方法的一应用环境示意图;
图2是本发明一实施例中基于spring boot的项目改造方法的流程图;
图3是本发明一实施例中基于spring boot的项目改造方法的步骤S20的流程图;
图4是本发明另一实施例中基于spring boot的项目改造方法的步骤S20的流程图;
图5是本发明一实施例中基于spring boot的项目改造方法的步骤S30的流程图;
图6是本发明另一实施例中基于spring boot的项目改造方法的流程图;
图7是本发明一实施例中基于spring boot的项目改造装置的示意图;
图8是本发明一实施例中基于spring boot的项目改造装置的参数检测模块的示意图;
图9是本发明另一实施例中基于spring boot的项目改造装置的示意图;
图10是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的基于spring boot的项目改造方法,可应用在如图1的应用环境中,其中,客户端(计算机设备/终端设备)通过网络与服务器(服务端)进行通信。其中,客户端(计算机设备/终端设备)包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种基于spring boot的项目改造方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S10,获取应用程序的程序代码。
其中,所述应用程序包括客户端/服务器端应用程序(C/S应用程序)和浏览器端/服务器端应用程序(B/S应用程序),所述客户端/服务器端应用程序为独立运行的应用程序,所述浏览器端/服务器端应用程序为借助浏览器(如IE等)来运行的应用程序。可理解地,所述程序代码即为开发者编写的,承载所述应用程序运行/执行逻辑的源文件,所述程序代码可以预先存储在服务器的数据库中。
在本实施例中,获取所述程序代码,可以从服务器的数据库中获取,亦可以通过访问所述应用程序的后台服务器获取所述程序代码;以供在后续步骤中对所述程序代码进行解耦,进而生成所述应用程序的功能模块的模块代码。
S20,对所述程序代码进行解耦,获取解耦之后对应于所述应用程序各模块的模块代码;所述应用程序中包含至少两个所述模块。
其中,所述模块代码是指用于执行所述应用程序各模块的功能的可执行代码,所述模块为所述应用程序中可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令,也即任何能被装入内存中运行的可执行代码和数据的集合,在本实施例中,所述模块即指代可以被装入内存中执行同类功能的可执行代码和数据的集合,举例说明:销售模块,为执行所述应用程序中的所有销售功能的可执行代码和数据的集合;手机模块,为执行所述应用程序中的所有面向手机端的功能(如手机端保单劝阻、手机端用户信息查询和手机端保单信息查询等)的可执行代码和数据的集合。
可理解地,所述应用程序有多个模块,但各个模块之间并非相互独立,各所述模块之间均具有不同程度的互相关联(即不同程度的耦合),也即所述程序代码包含多个所述模块代码,但是各个模块的所述模块代码在所述程序代码中并相互独立,而是互相耦合,在本实施例中,对所述程序代码进行解耦,消除各个模块的所述模块代码之间的互相依赖(耦合),进而生成对应于所述应用程序各模块的模块代码。具体地,所述解耦,可以通过类的向上转型来实现,亦可通过接口回调的方式来实现,在一实施例中,还可以利用适配器模式对所述程序代码进行解耦。
S30,获取预设的spring boot框架。
其中,所述spring boot框架是基于spring框架,同时集成了大量常用的第三方库配置(例如Jackson,JDBC,Mongo,Redis,Mail等),所述spring boot框架具有嵌入的tomcat,无需另行部署WAR文件,且约定优先配置,所述用户进行开发时只需配置一些必须的配置项(如数据库连接信息)。可理解地,所述spring boot框架可以根据需求预先设定,所述spring boot框架内的参数,亦可根据需求在获取的时候进行修改,如修改XML的默认配置信息、mapper文件等。
在本实施例中,获取所述spring boot框架,以供在步骤S40中将所述模块代码填充至所述spring boot框架,进而生成独立功能模块。基于所述springboot框架开发应用程序(即生成独立功能模块),可以无需对XML等配置文件进行配置,直接关注业务逻辑的开发,提升应用程序的开发效率。
S40,将各所述模块的所述模块代码分别填充至所述spring boot框架,生成对应于各所述模块的独立模块。
其中,所述独立模块为独立于所述应用程序其他模块的模块,通俗而言所述独立模块即为一个新的应用程序,也即所述独立模块可以不依附于所述应用程序,独立进行修改和完善,并独立发布版署,不需要通过其他模块,独立完成所述应用程序的线上更新。
具体地,以所述spring boot框架为所述独立模块的基础框架,将所述模块代码填充至所述spring boot框架,进而生成所述独立模块,以供在步骤S50中基于独立更新的各所述独立模块更新所述应用程序。
在一实施例中,所述模块为手机端模块,所述模块代码为承载所述手机端模块所有功能的可执行代码,将所述手机端模块的模块代码从所述应用程序中解耦出来,并填充至所述spring框架,生成独立模块,即可以将所述手机端模块从所述应用程序中分离,以供在后续中独立对所述手机端模块进行修改或/和开发,并独立对所述应用程序的手机端模块进行更新。
S50,基于独立更新的各所述独立模块更新所述应用程序。
具体地,因为所述独立模块是从所述应用程序中解耦分离的独立的模块,通过编辑修改所述独立模块中的模块代码,对所述独立模块的功能进行修改或完善;接着,对修改或完善后的所述独立模块单独发布版署,以对线上的所述应用程序中该独立模块所对应的模块进行更新,也即更新所述应用程序。
本实施例通过对所述独立模块进行修改或/和完善,然后独立发布版署,对所述应用程序进行更新,可以避免当只是对所述应用程序中的某一模块进行更新时,需要对所述应用程序中的所有模块的模块代码均进行修改;可理解地,所述应用程序的模块一般由不同的开发人员负责,而负责某模块的开发人员需要对其负责的模块发布版署,即更新其负责的模块时,需要取得其他所有模块的开发人员的认可,以便影响整个应用程序的功能出现错误,而本实施例通过对所述独立模块独立发布版署,进而对所述应用程序进行更新,还可以提升模块的单独更新效率,提升了所述应用程序的更新效率,增强用户体验。
本实施例通过对应用程序的程序代码进行解耦,进而生成所述应用程序各模块的模块代码,并引入spring boot框架,将所述模块代码填充至所述spring boot框架,即可以生成独立于所述应用程序的独立模块,以便于对所述独立模块单独发布版署,且仅通过单独发布所述独立模块的版署即可对所述应用程序进行更新,提升所述应用程序的开发和更新效率,降低更新所带来的风险,增强用户体验。
在一实施例中,如图3所示,所述步骤S20包括:
S201,创建回调接口,根据所述程序代码定义所述回调接口的抽象方法。
其中,所述回调接口是用于回调的对协定进行定义的引用类型,也即可以用于实现接口回调的接口,创建所述回调接口,以供在后续步骤中通过回调所述回调接口,实现接口回调,进而实现将所述程序代码解耦,可理解地,所述回调接口包含方法(如抽象方法)、属性(即实例类或某事件中的参数,比如,一个学生类中,学生的姓名即为一个属性)、索引器(所述索引器可以对对象使用下标,进而提供通过索引方式方便快捷地访问类的数据信息的方法)和事件。可理解地,创建的所述回调接口有多个,具体数量根据所述程序代码以及用户的需求而定。
所述抽象方法是指,在面向对象编程语言中,只有方法声明,而没有具体方法体的方法,举例说明,在java中的抽象方法,即为以abstract修饰的,只声明返回的数据类型、方法名称和所需的属性或参数的,没有方法体的方法;通俗而言,所述抽象方法只需声明而不需真正的实现。
可理解地,创建所述回调接口后,需要对所述回调接口中的方法、属性、索引器和事件等进行定义,在本实施例中,根据所述程序代码定义所述回调接口的所述抽象方法,具体地,所述应用程序分为多个模块,每一模块均有承载其功能实现的程序代码(即可执行代码),故所述程序代码由多个所述模块的所述模块代码耦合而成,按照所述程序代码中,每一所述模块的所述模块代码分别定义所述回调接口的抽象方法,以供所述程序代码中耦合在一起的各所述模块代码在代码层面通过封装接口的形式进行分离,进而在后续步骤中,通过接口回调,完成所述程序代码的解耦。
S202,定义所述回调接口的类,生成所述回调接口的回调方法。
其中,所述类是一种自定义的数据类型,是对一类具有共同特征的对象的抽象,所述类由类数据和类函数组成,所述类数据对应于类的属性,所述类数据亦是一种数据类型,即占用物理内存,可理解地,所述类数据也不能直接被操作;所述类函数用于操作所述类的各项属性,举例说明,所述类的一项属性为“厨师”,所述类函数可以承载操作“煮菜”,也即操作“厨师”去“煮菜”,通俗而言,所述类函数可以理解为一种方法,该方法叙述了怎么去做,即如何对所述属性进行操作,可理解地,所述类为一种抽象类,并非是具有具体对象和具体属性的类的实例。在本实施例中,定义所述回调接口的类,以便于在所述回调接口的类中生成所述回调接口的回调方法,进而在后续步骤中通过所述回调方法实现接口回调。
所述回调方法是指一种通过函数指针调用的方法,所述回调方法不是由其实现方直接调用,而是在特定的事件或条件发生时,由另外一方(另外一类的实例)进行调用,以响应该特定的事件或条件。
具体地,生成所述回调接口的回调方法,即可提供所述回调方法的实现方在初始化的时候,可以将回调方法的函数指针注册给调用者,以此,当特定的事件或条件发生时,调用者即可使用所述函数指针调用所述回调方法对所述事件进行处理。可理解地,通过所述回调方法,即可以把调用者与被调用者分离,调用者不用关心谁是被调用者,而只需知道存在一个具有特定原型和限制条件的被调用方法;可理解地,通过所述回调方法,用户可以把需要调用的方法的指针作为参数传递给一个方法,以便该方法在处理相似事件的时候可以灵活使用不同的方法。在本实施例中,生成所述回调方法,还可以供在步骤S203中创建所述类的实例。
S203,根据所述抽象方法创建所述类的实例,并根据所述类的实例,通过所述回调方法调用所述抽象方法的方式,对所述回调接口中与所述抽象方法对应的所述应用程序模块的模块代码进行解耦。
其中,所述类的实例是所述类的对象/属性具体化后的实例类,举例来说,一所述类的属性为“老师”,则所述属性具体化后的“章老师”即为所述类的实例。
根据所述抽象方法创建所述类的实例,即为所述抽象方法赋值,以此使所述抽象方法具体化。在本实施例中,首先获取所述类的成员变量,在所述类的成员变量对应的某个事件中,使用所述成员变量通过所述回调方法调用所述回调接口中的抽象方法,并为所述抽象方法中的属性赋值,实现接口回调。所述成员变量为在所述类中的变量部分定义的变量,也称为字段,用于标识某个维度的成员。
在本实施例中,通过所述回调方法调用所述抽象方法,以实现接口回调,对所述回调接口中与所述抽象方法对应的所述应用程序模块的模块代码进行解耦,进而实现每个所述回调接口中的所述抽象方法相互之间的解耦,达到解耦所述程序代码的效果。
在另一实施例中,如图4所示,所述步骤S20还包括:
S204,创建一个适配器类。
其中,所述适配器类为由Filter类的对象构成,且同时可以实现Processor接口的起中间作用的类。所述Filter类是指servlet,其作用当接收到客户端请求,但所述Filter类未对所述客户端请求处理时,对所述客户端请求进行拦截,并对所述客户端请求进行预处理,然后再发送至所述Fliter类进行后续处理,还可以在拦截后直接将所述客户端请求返回所述客户端进行后处理;所述Processor接口为一种后置处理器。
在本实施例中,解耦核心是通过设计适配器的设计模式进行解耦,具体地,创建一个适配器类,以供在步骤S205中将所述程序代码中耦合的模块代码填充至所述适配器类,以所述适配器类为中介,在应用所述适配器类的Processor接口的方法中,应用在并非实现该接口的类上。
S205,获取所述程序代码中耦合的至少两个模块代码;以便于在步骤S206中获取至少两个所述模块代码中的耦合代码。
S206,获取至少两个所述模块代码中的耦合代码;以供在步骤S207中将所述耦合代码自至少两个所述模块代码中分离并填充至所述适配器类
S207,将所述耦合代码自至少两个所述模块代码中分离并填充至所述适配器类之后,获取解耦之后的至少两个所述模块代码。
将所述耦合代码自至少两个所述模块代码中分离并填充至所述适配器类,即可以生成解耦后的所述模块代码(以封装接口的形式)。可理解地,在本实施例中,通过所述适配器类,以及解耦后的所述模块代码,接收一个想要进行操作但不兼容或不能操作的A类,然后得到一个可以进行操作的B类,通过所述适配器类的方法,即可以间接操作所述A类,如此便利用适配器设计模式,对所述程序代码进行解耦,生成解耦后的所述模块代码,以供在步骤S40中,将解耦后的所述模块代码填充至预设的spring boot框架中。
在一实施例中,如图5所示,所述步骤S30包括:
S301,通过spring生成基础框架。
其中,所述spring是开放源代码的设计层面框架。利用所述spring搭建生成基础框架,以便在后续步骤中根据所述基础框架,通过集成开发环境生成spring boot框架。
S302,为所述基础框架设立关联的统一资源定位符。
所述统一资源定位符为互联网上标准资源的地址,可理解地,所述基础框架内有多个方法,和多个资源,在本实施例中,先为整个所述基础框架设立关联的统一资源定位符,以便在后续步骤中根据所述基础框架生成springboot框架后,可以根据所述统一资源定位符找寻到所述基础框架内的方法或/和资源,可理解地,也即为所述基础框架设新建一个HelloController。
S303,根据所述基础框架与所述统一资源定位符,通过集成开发环境生成所述spring boot框架。
其中,所述集成开发环境为用于提供程序开发环境的应用程序,一般包括代码编辑器,编译器,调试器和图形用户界面等,作为优选,所述集成开发环境为IDEA。
以所述基础框架为基础,根据所述统一资源定位符,通过所述集成开发环境生成所述spring boot框架,以供在步骤S40中将所述模块代码填充至所述spring boot框架,进而生成独立模块。
在一实施例中,如图6所示,所述步骤S40之后,还包括:
S60,获取所述模块代码对应的模块数据。
如上所述,所述模块为能被装入内存中运行的可执行代码和数据的集合,可理解地,所述模块数据为所述模块代码所对应的模块中的数据。可理解地,所述应用程序的模块若要完整的实现其功能,不仅依靠可执行代码(即所述模块代码),还需要依赖于所述模块数据;举例来说,所述模块为手机段模块,所述手机端模块其中一项功能为客户信息查询,若所述手机端模块要实现该功能,不仅需要支撑运行该功能的可执行代码,还需预先存储有客户信息的数据,则该客户信息即为所述模块数据。所述模块数据一般存储在服务器的数据库中。
获取所述模块数据,以便在步骤S70中将所述模块数据封装至数据传输对象,进而将其进行数据格式的转换。
S70,将所述模块数据封装至数据传输对象,并将封装后的所述数据传输对象转换为JS对象简谱的字符串。
其中,所述数据传输对象(DTO)为设计模式之间传输数据的软件应用系统。所述JS对象简谱(JSON)是指一种轻量级的数据交换格式,其采用完全独立于编程语言的文本格式来存储以及表示数据。
可理解地,所述独立模块为一个新的应用程序,也即所述应用程序和所述独立模块为两个互相独立的系统,而两个互相独立的系统之间传输数据并不能直接交互数据。因此,在本实施例中,首先将所述模块数据封装至所述数据传输对象中的JAVA对象中,进一步地,将封装后的所述java对象转换为所述JS对象简谱中的字符串,以供在后续步骤中通过超文本传输协议将所述字符串传输至所述独立模块。
S80,通过超文本传输协议将所述字符串传输至所述独立模块,并在所述独立模块中将所述字符串恢复为数据传输对象。
其中,所述超文本传输协议(HTTP)为互联网的一种网络协议。具体地,通过所述超文本传输协议向所述独立模块发起数据交互请求后,将所述字符串传输至所述独立模块中,接着,在所述独立模块中,将所述字符串恢复成数据传输对象的java对象的形式,以便于读取和存储。
在本实施例中,通过将所述模块数据封装至所述数据传输对象,进而将封装后的所述数据传输对象转换为JS对象简谱的字符串,并传输至所述独立模块中,可以实现数据在不同的应用程序,也即在不同的系统之间的交互,且将所述模块数据传输至所述独立模块后,所述独立模块即可以不依赖于所述应用程序的数据,独立运行,提升运行效率,增强用户体验。
本发明通过对应用程序的程序代码进行解耦,进而生成所述应用程序各模块的模块代码,并引入spring boot框架,将所述模块代码填充至所述springboot框架,即可以生成独立于所述应用程序的独立模块,以便于对所述独立模块单独发布版署,且仅通过单独发布所述独立模块的版署即可对所述应用程序进行更新,提升所述应用程序的开发和更新效率,降低更新所带来的风险,增强用户体验。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于spring boot的项目改造装置,该基于spring boot的项目改造装置与上述实施例中基于spring boot的项目改造方法一一对应。如图7所示,该基于spring boot的项目改造装置包括代码获取模块11、解耦模块12、框架获取模块13、填充模块14和独立更新模块15。各功能模块详细说明如下:
所述代码获取模块11,用于获取应用程序的程序代码;
所述解耦模块12,用于对所述程序代码进行解耦,获取解耦之后对应于所述应用程序各模块的模块代码;所述应用程序中包含至少两个所述模块;
所述框架获取模块13,用于获取预设的spring boot框架;
所述填充模块14,用于将各所述模块的所述模块代码分别填充至所述springboot框架,生成对应于各所述模块的独立模块;
所述独立更新模块15,用于基于独立更新的各所述独立模块更新所述应用程序。
在一实施例中,如图8所示,所述解耦模块12,包括:
接口创建单元121,用于创建回调接口,根据所述程序代码定义所述回调接口的抽象方法;
定义模块122,用于定义所述回调接口的类,生成所述回调接口的回调方法;
回调模块123,用于根据所述抽象方法创建所述类的实例,并根据所述类的实例,通过所述回调方法调用所述抽象方法的方式,对所述回调接口中与所述抽象方法对应的所述应用程序模块的模块代码进行解耦。
在一实施例中,如图9所示,所述基于spring boot的项目改造装置,还包括:
数据获取模块16,用于获取所述模块代码对应的模块数据;
封装转换模块17,用于将所述模块数据封装至数据传输对象,并将封装后的所述数据传输对象转换为JS对象简谱的字符串;
传输恢复模块18,用于通过超文本传输协议将所述字符串传输至所述独立模块,并在所述独立模块中将所述字符串恢复为数据传输对象。
在一实施例中,所述解耦模块12还包括:
类创建单元,用于创建一个适配器类;
第一获取单元,用于获取所述程序代码中耦合的至少两个模块代码;
第二获取单元,用于获取至少两个所述模块代码中的耦合代码;
类填充单元,用于将所述耦合代码自至少两个所述模块代码中分离并填充至所述适配器类之后,获取解耦之后的至少两个所述模块代码。
关于基于spring boot的项目改造装置的具体限定可以参见上文中对于基于spring boot的项目改造方法的限定,在此不再赘述。上述基于spring boot的项目改造装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于spring boot的项目改造方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取应用程序的程序代码;
对所述程序代码进行解耦,获取解耦之后对应于所述应用程序各模块的模块代码;所述应用程序中包含至少两个所述模块;
获取预设的spring boot框架;
将各所述模块的所述模块代码分别填充至所述spring boot框架,生成对应于各所述模块的独立模块;
基于独立更新的各所述独立模块更新所述应用程序。
本计算机设备通过对应用程序的程序代码进行解耦,进而生成所述应用程序各模块的模块代码,并引入spring boot框架,将所述模块代码填充至所述spring boot框架,即可以生成独立于所述应用程序的独立模块,以便于对所述独立模块单独发布版署,且仅通过单独发布所述独立模块的版署即可对所述应用程序进行更新,提升所述应用程序的开发和更新效率,降低更新所带来的风险,增强用户体验。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取应用程序的程序代码;
对所述程序代码进行解耦,获取解耦之后对应于所述应用程序各模块的模块代码;所述应用程序中包含至少两个所述模块;
获取预设的spring boot框架;
将各所述模块的所述模块代码分别填充至所述spring boot框架,生成对应于各所述模块的独立模块;
基于独立更新的各所述独立模块更新所述应用程序。
本计算机可读存储介质通过对应用程序的程序代码进行解耦,进而生成所述应用程序各模块的模块代码,并引入spring boot框架,将所述模块代码填充至所述springboot框架,即可以生成独立于所述应用程序的独立模块,以便于对所述独立模块单独发布版署,且仅通过单独发布所述独立模块的版署即可对所述应用程序进行更新,提升所述应用程序的开发和更新效率,降低更新所带来的风险,增强用户体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于springboot的项目改造方法,其特征在于,包括:
获取应用程序的程序代码;
对所述程序代码进行解耦,获取解耦之后对应于所述应用程序各模块的模块代码;所述应用程序中包含至少两个所述模块;
获取预设的springboot框架;
将各所述模块的所述模块代码分别填充至所述springboot框架,生成对应于各所述模块的独立模块;
基于独立更新的各所述独立模块更新所述应用程序;
其中,所述对所述程序代码进行解耦,包括:
创建回调接口,根据所述程序代码定义所述回调接口的抽象方法;
定义所述回调接口的类,生成所述回调接口的回调方法;
根据所述抽象方法创建所述类的实例,并根据所述类的实例,通过所述回调方法调用所述抽象方法的方式,对所述回调接口中与所述抽象方法对应的所述应用程序模块的模块代码进行解耦;
所述将各所述模块的所述模块代码分别填充至所述springboot框架,生成对应于各所述模块的独立模块之后,还包括:
获取所述模块代码对应的模块数据;
将所述模块数据封装至数据传输对象,并将封装后的所述数据传输对象转换为JS对象简谱的字符串;
通过超文本传输协议将所述字符串传输至所述独立模块,并在所述独立模块中将所述字符串恢复为数据传输对象。
2.如权利要求1所述的基于springboot的项目改造方法,其特征在于,所述获取预设的springboot框架,包括:
通过spring生成基础框架;
为所述基础框架设立关联的统一资源定位符;
根据所述基础框架与所述统一资源定位符,通过集成开发环境生成所述springboot框架。
3.一种基于springboot的项目改造装置,其特征在于,包括:
代码获取模块,用于获取应用程序的程序代码;
解耦模块,用于对所述程序代码进行解耦,获取解耦之后对应于所述应用程序各模块的模块代码;所述应用程序中包含至少两个所述模块;
框架获取模块,用于获取预设的springboot框架;
填充模块,用于将各所述模块的所述模块代码分别填充至所述springboot框架,生成对应于各所述模块的独立模块;
独立更新模块,用于基于独立更新的各所述独立模块更新所述应用程序;
其中,所述解耦模块,包括:
接口创建单元,用于创建回调接口,根据所述程序代码定义所述回调接口的抽象方法;
定义模块,用于定义所述回调接口的类,生成所述回调接口的回调方法;
回调模块,用于根据所述抽象方法创建所述类的实例,并根据所述类的实例,通过所述回调方法调用所述抽象方法的方式,对所述回调接口中与所述抽象方法对应的所述应用程序模块的模块代码进行解耦;
所述基于springboot的项目改造装置,还包括:
数据获取模块,用于获取所述模块代码对应的模块数据;
封装转换模块,用于将所述模块数据封装至数据传输对象,并将封装后的所述数据传输对象转换为JS对象简谱的字符串;
传输恢复模块,用于通过超文本传输协议将所述字符串传输至所述独立模块,并在所述独立模块中将所述字符串恢复为数据传输对象。
4.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至2任一项所述基于springboot的项目改造方法的步骤。
5.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至2任一项所述基于springboot的项目改造方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910301173.XA CN110187902B (zh) | 2019-04-15 | 基于spring boot的项目改造方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910301173.XA CN110187902B (zh) | 2019-04-15 | 基于spring boot的项目改造方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110187902A CN110187902A (zh) | 2019-08-30 |
CN110187902B true CN110187902B (zh) | 2024-06-07 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523225A (zh) * | 2011-12-22 | 2012-06-27 | 浙江国自机器人技术有限公司 | 分布式松耦合构架中的解耦方法及分布式松耦合构架平台 |
CN105893558A (zh) * | 2016-04-01 | 2016-08-24 | 腾讯科技(深圳)有限公司 | 一种推荐数据的显示方法及系统 |
CN107273126A (zh) * | 2017-06-15 | 2017-10-20 | 中国银行股份有限公司 | 应用开发方法和装置 |
CN107908403A (zh) * | 2017-11-10 | 2018-04-13 | 北京搜狐新动力信息技术有限公司 | 一种移动端业务模块组件化的配置方法及系统 |
CN109032628A (zh) * | 2018-06-26 | 2018-12-18 | 珠海宏桥高科技有限公司 | 一种应用程序的页面与后端解耦的方法和装置 |
CN109582310A (zh) * | 2018-11-30 | 2019-04-05 | 北京微播视界科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523225A (zh) * | 2011-12-22 | 2012-06-27 | 浙江国自机器人技术有限公司 | 分布式松耦合构架中的解耦方法及分布式松耦合构架平台 |
CN105893558A (zh) * | 2016-04-01 | 2016-08-24 | 腾讯科技(深圳)有限公司 | 一种推荐数据的显示方法及系统 |
CN107273126A (zh) * | 2017-06-15 | 2017-10-20 | 中国银行股份有限公司 | 应用开发方法和装置 |
CN107908403A (zh) * | 2017-11-10 | 2018-04-13 | 北京搜狐新动力信息技术有限公司 | 一种移动端业务模块组件化的配置方法及系统 |
CN109032628A (zh) * | 2018-06-26 | 2018-12-18 | 珠海宏桥高科技有限公司 | 一种应用程序的页面与后端解耦的方法和装置 |
CN109582310A (zh) * | 2018-11-30 | 2019-04-05 | 北京微播视界科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220043637A1 (en) | Providing communication between a client system and a process-based software application | |
US9235380B2 (en) | Software modeling framework | |
CN112748908B (zh) | 基于SSM框架的Restful服务开发方法与装置 | |
US11521137B2 (en) | Deployment of self-contained decision logic | |
CN109308224B (zh) | 跨平台数据通信、跨平台数据处理的方法、装置及系统 | |
CN106663002B (zh) | Rest服务源代码生成 | |
US11042387B2 (en) | Deploying cross-platform applications on mobile devices with native and web components | |
US8316379B2 (en) | Method for invoking UOML instructions | |
US10666744B2 (en) | Managing discovery and selection of service interface specifications | |
US8250226B2 (en) | Generating one or more clients for generating one or more synthetic transactions with one or more web service operations | |
CN112199164A (zh) | 一种保证容器镜像一致性的方法 | |
US20220179651A1 (en) | Smart contract client program generation method, system and device, and medium | |
JP5811088B2 (ja) | データ処理システム及びデータ処理方法 | |
CN113467972A (zh) | 通信接口构造方法、装置以及计算机设备、存储介质 | |
EP3441883B1 (en) | Function serialization for inter-thread messaging | |
US20230409295A1 (en) | Building base applications with user interface micro frontends | |
CN110187902B (zh) | 基于spring boot的项目改造方法、装置、设备及存储介质 | |
US10802810B2 (en) | Consuming persistent library bundles | |
US20190188063A1 (en) | Mapping computer programs to network protocol methods | |
WO2022099913A1 (zh) | 界面配置方法、装置、设备及介质 | |
CN110187902A (zh) | 基于spring boot的项目改造方法、装置、设备及存储介质 | |
Juhnke et al. | LCDL: an extensible framework for wrapping legacy code | |
CN114489687A (zh) | 一种业务实例部署的方法及相关装置 | |
CN117687634A (zh) | 一种服务编译方法、装置和电子设备 | |
CN113608745A (zh) | 一种初始化用户权限的方法及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |