CN111104122A - 一种xml业务逻辑映射到java业务逻辑的方法 - Google Patents
一种xml业务逻辑映射到java业务逻辑的方法 Download PDFInfo
- Publication number
- CN111104122A CN111104122A CN201911346300.4A CN201911346300A CN111104122A CN 111104122 A CN111104122 A CN 111104122A CN 201911346300 A CN201911346300 A CN 201911346300A CN 111104122 A CN111104122 A CN 111104122A
- Authority
- CN
- China
- Prior art keywords
- xml
- label
- scope
- service
- workflow
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种xml业务逻辑映射到java业务逻辑的方法,属于大数据技术领域,包括建立业务数据库和系统中心服务器,业务数据库用于存储xml业务逻辑数据,业务数据库与系统中心服务器通过互联网通信;在系统中心服务器中建立工作流模块、执行器模块和变量作用域模块,解决了为了应对开发中繁琐的上线流程而实现业务逻辑与系统分离的技术问题,本发明在小规模下,系统搭建非常简单,只需要加载几个jar包就可以实现,且服务实现界面化管理,易于维护和测试,服务易于管理和维护。
Description
技术领域
本发明属于大数据技术领域,涉及一种xml业务逻辑映射到java业务逻辑的方法。
背景技术
企业的接口系统往往需要对接多方,支持多种协议,而且由于第三方众多,加上需求的变更,就需要一个非常灵活的接口系统,这个接口系统需要满足,性能高,稳定,易于管理,易于维护,以及完善的日志系统和统计功能。
而接口系统的逻辑相对简单,如果做一层简单抽象,可分为三层,既:接入方报文转换,接出方报文转换,以及连接接出方的连接器。如果仅仅做了这种抽象,随着系统越来越庞大,就会导致管理越来越困难,越来越难以维护,而且还有一个弊端就是很难用同一个接口满足不同的需求。
发明内容
本发明的目的是提供一种xml业务逻辑映射到java业务逻辑的方法,解决了为了应对开发中繁琐的上线流程而实现业务逻辑与系统分离的技术问题。
为实现上述目的,本发明采用如下技术方案:
一种xml业务逻辑映射到java业务逻辑的方法,包括如下步骤:
步骤1:建立业务数据库和系统中心服务器,业务数据库用于存储xml业务逻辑数据,业务数据库与系统中心服务器通过互联网通信;
在系统中心服务器中建立工作流模块、执行器模块和变量作用域模块;
步骤2:在业务数据库中采用xml标签语言来作为接口逻辑的描述语言,每一个xml业务逻辑数据均包含一种xml标签,xml标签包括开始标签和一个结束标签;
步骤3:系统中心服务器获取到一个xml业务逻辑数据后,通过工作流模块根据以下方法建立工作流:
步骤A1:将所有xml业务逻辑数据的xml标签转均换成java的实体类,即,将xml标签转换成一个对象,每一个对象仅仅是内部数据不同;
步骤A2:将步骤A1中生成的对象放入一个对象集合中,并与执行器模块进行关联,生成工作流;
步骤4:执行器模块建立执行器对象,初始化工作流指针;
步骤5:按照顺序从对象集合中逐一取出对象,并对对象进行解析,得到对象所对应的xml标签的java的实体类;
步骤6:在执行器模块中建立每一个标签所对应的处理方法,执行器模块通过步骤4的方法获取到xml标签的java的实体类后,查找出xml标签对应的处理方法,并根据该处理方法执行xml标签;
步骤7:重复执行步骤5和步骤6的方法,直到工作流指针指向结束,执行器模块返回工作流的返回值;
步骤8:变量作用域模块根据以下方法建立由执行器模块自行控制新建或释放的作用域:
步骤B1:设定xml业务逻辑数据中包含其他标签的标签叫做块级标签,而不包含其他标签的叫内容标签;
步骤B2:新建作用域的触发条件就是遇到了块级标签且该标签的作用域在当前环境变量中并不存在;
步骤B3:每当新建一个作用域,就会标记当前作用域所属的对象;
步骤B4:当工作流执行到步骤B3中所述对象的外层的时候,会因为当前获取的对象并非当前作用域所属的对象,则会触发释放作用域的条件,释放作用域会从当前作用域开始,一直释放到新的对象所属的作用域位置。
优选的,所述系统中心服务器的底层系统采用java,主系统框架选用springboot,xml解析选用saxxml解析器,xml中字符语言采用spel表达式。
优选的,在执行步骤3时,所述saxxml解析器解析所述xml业务逻辑数据的java的实体类时,首先建立用于存放xml业务逻辑数据的元素实体的list对象,然后建立用于暂存当前实体元素的变量,再然后设置父元素唯一标识,再然后建立用于建立元素的对应关系的元素实体栈,最后在元素实体栈中将每一个xml标签均转换成一个对象。
本发明所述的一种xml业务逻辑映射到java业务逻辑的方法,解决了为了应对开发中繁琐的上线流程而实现业务逻辑与系统分离的技术问题,本发明在小规模下,系统搭建非常简单,只需要加载几个jar包就可以实现,且服务实现界面化管理,易于维护和测试,服务易于管理和维护。本发明由于服务的业务逻辑采用xml编写,与系统没有任何关系,所以可以把xml文件集中起来或者分散开管理都可以,而且可以直接把服务放到数据库里,在用管理界面实现更为直观的管理和维护,扩展灵活。
附图说明
图1为本发明的流程图。
具体实施方式
如图1所示的一种xml业务逻辑映射到java业务逻辑的方法,包括如下步骤:
步骤1:建立业务数据库和系统中心服务器,业务数据库用于存储xml业务逻辑数据,业务数据库与系统中心服务器通过互联网通信;
在系统中心服务器中建立工作流模块、执行器模块和变量作用域模块;
步骤2:在业务数据库中采用xml标签语言来作为接口逻辑的描述语言,每一个xml业务逻辑数据均包含一种xml标签,xml标签包括开始标签和一个结束标签;
本实施例中,以一下test.xml业务逻辑数据为例:
test.xml业务逻辑数据内容如下:
该xml业务逻辑数据是通过两个for循环输出99乘法表。
步骤3:系统中心服务器获取到一个xml业务逻辑数据后,通过工作流模块根据以下方法建立工作流:
步骤A1:将所有xml业务逻辑数据的xml标签转均换成java的实体类,即,将xml标签转换成一个对象,每一个对象仅仅是内部数据不同;
步骤A2:将步骤A1中生成的对象放入一个对象集合中,并与执行器模块进行关联,生成工作流;
在获取到test.xml业务逻辑数据后,通过xml解析器SaxXmlParse对test.xml业务逻辑数据进行解析,生成工作流对象List<ElementEntity>list;
步骤4:执行器模块建立执行器对象,初始化工作流指针;
在获取了工作流对象List<ElementEntity>list后,执行器模块建立新的执行器对象,用来执行工作流对象List<ElementEntity>list;
步骤5:按照顺序从对象集合中逐一取出对象,并对对象进行解析,得到对象所对应的xml标签的java的实体类;
执行器模块拿到工作流对象List<ElementEntity>list后先校验是否是正常的工作流对象,而后初始化环境变量,创建一个空的全局变量域,和一个空的全局常量域。
步骤6:在执行器模块中建立每一个标签所对应的处理方法,执行器模块通过步骤4的方法获取到xml标签的java的实体类后,查找出xml标签对应的处理方法,并根据该处理方法执行xml标签;
执行器模块用while(true)循环来遍历工作流,每取到一个工作流对象,则调用该对象相应的方法来处理该对象。本实施例下面以test.xml业务逻辑数据中的第一个for循环为例说明一下for循环的处理方式:
第一个for循环对象:
ElementEntity(name=for,attr={c=$$i=1;$ilt10;$i++},content=null,startIndex=5,endIndex=16,isStartTag=true,isBlockElem=true,
parentElemUUID=a4664e96-bb3c-42a8-b72c-14fb296ce670,previousElemUUID=9a4938ac-75d8-4baa-9dfb-7b77b086111d,uuid=45707604-9c48-43f6-b443-a515dfbc3080)
对应的标签语句是<forc="$$i=1;$ilt10;$i++">
该对象对应的方法是:
当执行器拿到for开始标签对应的对象,就会执行for标签的startElem()方法,通过startElem()方法,初始化变量i=1,然后判断条件i<10是否成立,如果条件成立,则返回null,如果条件不成立,则跳过这层for循环,跳过的方法是elemMethod.setWorkStatus(EnumWorkStatus.GO_NEXT_ELEM);
该方法将执行状态置为跳到下一个元素,执行器会根据状态修改工作流的计数器指针,从而跳过for循环体内部的所有元素。
而当执行到闭合标签时,会先执行i++语句,然后再次判断条件,如果条件符合,跳转到for标签的开始标签处,跳转方法:elemMethod.setWorkStatus(EnumWorkStatus.GO_START_ELEM_NEXT);
当条件判断不服务,则不会:
最终会通过<return>{"list":$list}</return>标签对应的方法将返回值返回,返回值如下:
步骤7:重复执行步骤5和步骤6的方法,直到工作流指针指向结束,执行器模块返回工作流的返回值;
步骤8:变量作用域模块根据以下方法建立由执行器模块自行控制新建或释放的作用域:
步骤B1:设定xml业务逻辑数据中包含其他标签的标签叫做块级标签,而不包含其他标签的叫内容标签;
步骤B2:新建作用域的触发条件就是遇到了块级标签且该标签的作用域在当前环境变量中并不存在;
步骤B3:每当新建一个作用域,就会标记当前作用域所属的对象;
步骤B4:当工作流执行到步骤B3中所述对象的外层的时候,会因为当前获取的对象并非当前作用域所属的对象,则会触发释放作用域的条件,释放作用域会从当前作用域开始,一直释放到新的对象所属的作用域位置。
优选的,所述系统中心服务器的底层系统采用java,主系统框架选用springboot,xml解析选用saxxml解析器,xml中字符语言采用spel表达式。
优选的,在执行步骤3时,所述saxxml解析器解析所述xml业务逻辑数据的java的实体类时,首先建立用于存放xml业务逻辑数据的元素实体的list对象,然后建立用于暂存当前实体元素的变量,再然后设置父元素唯一标识,再然后建立用于建立元素的对应关系的元素实体栈,最后在元素实体栈中将每一个xml标签均转换成一个对象。
本发明在接口系统的逻辑相对简单的抽象层上进一步抽象了一层,既:原子服务,连接器,对外的api服务,报文转换协议。其中,原子服务是接收必要参数,通过连接器调用第三方服务,不做任何数据处理,直接返回,而对外的API服务则是提供给调用者调用的服务,包括参数校验,和出参处理,而报文转换协议则是第三方的入参报文和出参报文规则,通过API服务来解析。
本发明所述的一种xml业务逻辑映射到java业务逻辑的方法,解决了为了应对开发中繁琐的上线流程而实现业务逻辑与系统分离的技术问题,本发明在小规模下,系统搭建非常简单,只需要加载几个jar包就可以实现,且服务实现界面化管理,易于维护和测试,服务易于管理和维护。本发明由于服务的业务逻辑采用xml编写,与系统没有任何关系,所以可以把xml文件集中起来或者分散开管理都可以,而且可以直接把服务放到数据库里,在用管理界面实现更为直观的管理和维护,扩展灵活。
Claims (3)
1.一种xml业务逻辑映射到java业务逻辑的方法,其特征在于:包括如下步骤:
步骤1:建立业务数据库和系统中心服务器,业务数据库用于存储xml业务逻辑数据,业务数据库与系统中心服务器通过互联网通信;
在系统中心服务器中建立工作流模块、执行器模块和变量作用域模块;
步骤2:在业务数据库中采用xml标签语言来作为接口逻辑的描述语言,每一个xml业务逻辑数据均包含一种xml标签,xml标签包括开始标签和一个结束标签;
步骤3:系统中心服务器获取到一个xml业务逻辑数据后,通过工作流模块根据以下方法建立工作流:
步骤A1:将所有xml业务逻辑数据的xml标签转均换成java的实体类,即,将xml标签转换成一个对象,每一个对象仅仅是内部数据不同;
步骤A2:将步骤A1中生成的对象放入一个对象集合中,并与执行器模块进行关联,生成工作流;
步骤4:执行器模块建立执行器对象,初始化工作流指针;
步骤5:按照顺序从对象集合中逐一取出对象,并对对象进行解析,得到对象所对应的xml标签的java的实体类;
步骤6:在执行器模块中建立每一个标签所对应的处理方法,执行器模块通过步骤4的方法获取到xml标签的java的实体类后,查找出xml标签对应的处理方法,并根据该处理方法执行xml标签;
步骤7:重复执行步骤5和步骤6的方法,直到工作流指针指向结束,执行器模块返回工作流的返回值;
步骤8:变量作用域模块根据以下方法建立由执行器模块自行控制新建或释放的作用域:
步骤B1:设定xml业务逻辑数据中包含其他标签的标签叫做块级标签,而不包含其他标签的叫内容标签;
步骤B2:新建作用域的触发条件就是遇到了块级标签且该标签的作用域在当前环境变量中并不存在;
步骤B3:每当新建一个作用域,就会标记当前作用域所属的对象;
步骤B4:当工作流执行到步骤B3中所述对象的外层的时候,会因为当前获取的对象并非当前作用域所属的对象,则会触发释放作用域的条件,释放作用域会从当前作用域开始,一直释放到新的对象所属的作用域位置。
2.如权利要求1所述的一种xml业务逻辑映射到java业务逻辑的方法,其特征在于:所述系统中心服务器的底层系统采用java,主系统框架选用springboot,xml解析选用saxxml解析器,xml中字符语言采用spel表达式。
3.如权利要求2所述的一种xml业务逻辑映射到java业务逻辑的方法,其特征在于:在执行步骤3时,所述sax xml解析器解析所述xml业务逻辑数据的java的实体类时,首先建立用于存放xml业务逻辑数据的元素实体的list对象,然后建立用于暂存当前实体元素的变量,再然后设置父元素唯一标识,再然后建立用于建立元素的对应关系的元素实体栈,最后在元素实体栈中将每一个xml标签均转换成一个对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911346300.4A CN111104122B (zh) | 2019-12-24 | 2019-12-24 | 一种xml业务逻辑映射到java业务逻辑的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911346300.4A CN111104122B (zh) | 2019-12-24 | 2019-12-24 | 一种xml业务逻辑映射到java业务逻辑的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111104122A true CN111104122A (zh) | 2020-05-05 |
CN111104122B CN111104122B (zh) | 2023-04-11 |
Family
ID=70423623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911346300.4A Active CN111104122B (zh) | 2019-12-24 | 2019-12-24 | 一种xml业务逻辑映射到java业务逻辑的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111104122B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115935012A (zh) * | 2023-02-21 | 2023-04-07 | 云筑信息科技(成都)有限公司 | 一种基于xml的流程可视化标记语言的业务处理方法 |
CN116661771A (zh) * | 2023-05-16 | 2023-08-29 | 江苏江顺精密机电设备有限公司 | 一种用于物流调度系统的业务逻辑编译执行组件及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520963A (zh) * | 2011-12-26 | 2012-06-27 | 重庆新媒农信科技有限公司 | 基于强类型关系映射实现业务逻辑处理的方法及系统 |
CN107766107A (zh) * | 2017-10-31 | 2018-03-06 | 四川长虹电器股份有限公司 | 基于Xpath 语言的xml文件通用解析器的解析方法 |
CN109976732A (zh) * | 2017-12-28 | 2019-07-05 | 重庆南华中天信息技术有限公司 | 可将相同编程模型映射成不同语言代码程序的方法及系统 |
-
2019
- 2019-12-24 CN CN201911346300.4A patent/CN111104122B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520963A (zh) * | 2011-12-26 | 2012-06-27 | 重庆新媒农信科技有限公司 | 基于强类型关系映射实现业务逻辑处理的方法及系统 |
CN107766107A (zh) * | 2017-10-31 | 2018-03-06 | 四川长虹电器股份有限公司 | 基于Xpath 语言的xml文件通用解析器的解析方法 |
CN109976732A (zh) * | 2017-12-28 | 2019-07-05 | 重庆南华中天信息技术有限公司 | 可将相同编程模型映射成不同语言代码程序的方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115935012A (zh) * | 2023-02-21 | 2023-04-07 | 云筑信息科技(成都)有限公司 | 一种基于xml的流程可视化标记语言的业务处理方法 |
CN115935012B (zh) * | 2023-02-21 | 2023-06-23 | 云筑信息科技(成都)有限公司 | 一种基于xml的流程可视化标记语言的业务处理方法 |
CN116661771A (zh) * | 2023-05-16 | 2023-08-29 | 江苏江顺精密机电设备有限公司 | 一种用于物流调度系统的业务逻辑编译执行组件及方法 |
CN116661771B (zh) * | 2023-05-16 | 2024-04-30 | 江苏江顺精密机电设备有限公司 | 一种用于物流调度系统的业务逻辑编译执行组件及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111104122B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7676786B2 (en) | System and method and apparatus for using UML tools for defining web service bound component applications | |
US20180054403A1 (en) | Opaque Message Parsing | |
CN112527528A (zh) | 基于消息队列的数据传输方法、装置及存储介质 | |
US20060080336A1 (en) | Encapsulation and unified access scheme for components | |
US8645913B2 (en) | Web-service based generation of business objects | |
US20090187927A1 (en) | Method for invoking UOML instructions | |
CN111552838A (zh) | 数据处理方法及装置、计算机设备、存储介质 | |
CN111104122B (zh) | 一种xml业务逻辑映射到java业务逻辑的方法 | |
US8972487B2 (en) | Automated framework for testing enterprise services consumer technologies | |
WO2019043462A1 (en) | SYSTEMS AND METHODS FOR CREATING AUTOMATED INTERFACE TRANSMISSION BETWEEN HETEROGENEOUS SYSTEMS IN A BUSINESS ECOSYSTEM | |
US20020103890A1 (en) | Core object model for network management configuration applications in telecommunication systems | |
CN110134380A (zh) | 一种基于模板引擎的代码生成方法、装置及电子设备 | |
CN114173355A (zh) | 一种设计运行态分离的网络指令动态执行方法及系统 | |
CN111552839B (zh) | 一种基于xml模板的对象转换方法 | |
CN110659022A (zh) | 一种基于Java自动调用Python脚本的方法 | |
CN102486731A (zh) | 增强软件的软件调用栈的可视化的方法、设备和系统 | |
CN111400058B (zh) | 调用消息的方法、装置、计算机设备及存储介质 | |
CN113626001A (zh) | 一种基于脚本的api动态编排方法及装置 | |
CN112445811A (zh) | 基于sql配置的数据服务方法、装置、存储介质及组件 | |
CN106156339B (zh) | 保单管理系统的访问方法、装置及系统 | |
CN113568683B (zh) | 资产数据流处理服务组件动态扩展的方法和装置 | |
CN112799775B (zh) | 一种节点属性传递方法以及相关装置 | |
CN117435177B (zh) | 应用程序接口构建方法、系统、设备及存储介质 | |
CN109992293A (zh) | Android系统组件版本信息的组装方法及装置 | |
CN115168365B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |