CN103605526A - 一种基于责任链模式的模版组件化生成代码的方法 - Google Patents
一种基于责任链模式的模版组件化生成代码的方法 Download PDFInfo
- Publication number
- CN103605526A CN103605526A CN201310633921.7A CN201310633921A CN103605526A CN 103605526 A CN103605526 A CN 103605526A CN 201310633921 A CN201310633921 A CN 201310633921A CN 103605526 A CN103605526 A CN 103605526A
- Authority
- CN
- China
- Prior art keywords
- code
- assembly
- present
- masterplate
- chain
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于责任链模式的模版组件化生成代码的方法,其通过代码生成来解决软件项目开发中的大量重复工作,使得程序员只需关注不同需求的业务逻辑,而且本发明采用了一种基于责任链的模版组件生成方式,既可采用内置的代码封装方式,也可采用自定义模版的代码封装方式,同时也支持自由组合生成链的方式生成特定模块的相关代码,同时兼顾了简易性和灵活性。通过本发明能够满足不同需求,提供组件定件化的方案,从而实现了项目快速开发,减少重复工作的目的。
Description
技术领域
本发明涉及代码生成技术领域,尤其涉及一种基于责任链模式的模版组件化生成代码的方法。
背景技术
在启动一个新项目的时候,需要设计好项目的体系架构,并重新编写大量的公共代码,如果存在旧项目且旧项目的体系架构满足当前需求,则可将公共代码提取出,修改其中由于项目不同导致的特异性代码,但仍会存在较多的重复性工作以及花费一定量的调试时间。
专利号为200710002787.5的发明专利,公开了一种持久层生成方法及装置,用于简单便捷的实现数据的持久化处理。所述方法包括:获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数;根据所述获取到的参数生成持久层代码;将所述持久层代码封装成为持久层。所述装置包括:获取单元,生成单元以及封装单元;所述获取单元用于获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数,并将获取到的参数发送至生成单元;所述生成单元用于根据所述获取到的参数生成持久层代码,并将生成的持久层代码发送至封装单元;所述封装单元用于将接收到的持久层代码封装成为持久层。本发明可以有效地简化数据持久化的过程。该发明只生成了持久层代码,没有解决其他层的公共代码编写问题,而且每个公司都有自已的技术体系,有自己所采用的框架,以及封装方式,这种方式生成的代码并不一定符合所有项目的开发需求。
另外,申请号为201310322858.5的发明专利公开了一种代码生成方法及系统,所述系统包括:静态表单读取模块、Java服务器页面(JSP)生成模块、数据持久层生成模块、控制器生成模块和配置文件生成模块;所述JSP生成模块生成视图层JSP文件;所述数据持久层生成模块生成简单JAVA对象(POJO)类文件、以及数据访问对象(DAO)类文件;所述控制器生成模块,生成控制器Java类文件;所述配置文件生成模块生成可扩展标记语言(XML)配置文件。采用本发明的技术方案,能够高效地根据不同待开发软件的具体框架生成业务代码,并降低开发成本。该技术生成了是基于hibernate和struts2的框架生成业务代码,灵活性不足,每个公司都有自已的技术体系,有自己所采用的框架,以及封装方式,这种方式生成的代码并不一定符合所有项目的开发需求。
发明内容
本发明的目的是为了克服现有技术的缺陷,提供一种基于责任链模式的模版组件化生成代码的方法,该方法包括以下步骤:
1)设计好项目的数据表结构;
2)通过配置文件,配置好数据库的连接;
3)配置好其他可变配置,不需配置则采用默认参数;
4)当有定制需求时,修改模版文件和组件代码,自定义组件责任链;
5)在运行期中,采用智能分析,自动跳过无效的组件;
6)项目代码生成完毕,启动生成的项目,进行业务流程测试;
本发明技术方案带来的有益效果:
本发明技术方案能够满足不同项目开发的开发需求,快速生成公共代码,在不降低开发质量的同时减少项目的开发周期。同时通过基于责任链模式的模版组件化生成代码方法,以各类模版加上业务代码形成的组件具有高可读性、高内聚低耦合的特性,定制容易,灵活,可满足不同项目的前期代码生成需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明中一种基于责任链模式的模版组件化生成代码的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明为了解决现有技术中编码新项目,需要大量重新编写公共代码以及或者对旧有项目的公共代码进行提取后需进行多次调试测试的缺点或不足,采用了自动产生公共代码,并为了满足不同需求,提供组件定件化的方案,从而实现了项目快速开发,减少重复工作的目的。
如图1所示为本发明的方法流程图,其实现步骤如下:
1.设计好项目的数据表结构;
2.通过配置文件,配置好数据库的连接,本发明内置了除了数据库连接之外的所有默认参数,保证了本发明的简易使用性;
3.配置好其他可变配置,不配置则采用默认参数,如有特殊需求,则可配置项目代码生成的相关参数,如生成路径,采用的框架等;
4.当有定制需求时,修改模版文件和组件代码,自定义组件责任链,由于本发明采用了基于责任链的模版组件式生成方式,每个组件生成方式都可灵活定制,例如:不需要持久层的代码,可以将该组件从责任链中剔除出去,或者持久层采用的是别的框架的封装方式,则可更新相对应的模版文件或自定义一个组件,并将该组件添加到责任链中,高度的可定制性保证了本发明的灵活性;
5.在运行期中,采用智能分析,自动跳过无效的组件,例如:已经存在静态页面,本发明会扫描并生成相对应的控件层类,javascript文件,以及相应的页面跳转代码,否则会跳过相应组件的生成,避免了大量且繁琐的配置文件。
6.项目代码生成完毕,启动生成的项目,进行业务流程测试。
本发明通过代码生成来解决软件项目开发中的大量重复工作,使得程序员只需关注不同需求的业务逻辑,而且本发明采用了一种基于责任链的模版组件生成方式,既可采用内置的代码封装方式,也可采用自定义模版的代码封装方式,同时也支持自由组合生成链的方式生成特定模块的相关代码,同时兼顾了简易性和灵活性。
此外,本发明还能够采用模版引擎技术将常用公共代码形成模版,把一些不同项目经常变化的的参数配置在配置文件中,然后通过配置各类参数来生成代码。缺点是配置繁琐,且只能适用于相同技术体系架构的项目。
以上对本发明实施例所提供的一种基于责任链模式的模版组件化生成代码的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种基于责任链模式的模版组件化生成代码的方法,其特征在于,该方法包括以下步骤:
1)设计好项目的数据表结构;
2)通过配置文件,配置好数据库的连接;
3)配置好其他可变配置,不需配置则采用默认参数;
4)当有定制需求时,修改模版文件和组件代码,自定义组件责任链;
5)在运行期中,采用智能分析,自动跳过无效的组件;
6)项目代码生成完毕,启动生成的项目,进行业务流程测试。
2.根据权利要求1所述的方法,其特征在于,本发明内置了除了数据库连接之外的所有默认参数,保证了本发明的简易使用性。
3.根据权利要求1所述的方法,其特征在于,有特殊需求时,则可配置项目代码生成的相关参数,例如生成路径,采用的框架。
4.根据权利要求1所述的方法,其特征在于,本发明采用了基于责任链的模版组件式生成方式,每个组件生成方式都能灵活定制,不需要持久层的代码,将该组件从责任链中剔除出去,或者持久层采用的是其他的框架的封装方式,则可更新相对应的模版文件或自定义一个组件,并将该组件添加到责任链中,高度的可定制性保证了本发明的灵活性。
5.根据权利要求1所述的方法,其特征在于,在步骤5)中,如果已经存在静态页面,本发明会扫描并生成相对应的控件层类,javascript文件以及相应的页面跳转代码,否则会跳过相应组件的生成,避免了大量且繁琐的配置文件。
6.根据权利要求1所述的方法,其特征在于,本发明既能够采用内置的代码封装方式,也能够采用自定义模版的代码封装方式,同时也支持自由组合生成链的方式生成特定模块的相关代码。
7.根据权利要求1所述的方法,其特征在于,本发明还能够采用模版引擎技术将常用公共代码形成模版,把一些不同项目经常变化的的参数配置在配置文件中,然后通过配置各类参数来生成代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310633921.7A CN103605526A (zh) | 2013-11-28 | 2013-11-28 | 一种基于责任链模式的模版组件化生成代码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310633921.7A CN103605526A (zh) | 2013-11-28 | 2013-11-28 | 一种基于责任链模式的模版组件化生成代码的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103605526A true CN103605526A (zh) | 2014-02-26 |
Family
ID=50123756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310633921.7A Pending CN103605526A (zh) | 2013-11-28 | 2013-11-28 | 一种基于责任链模式的模版组件化生成代码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103605526A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843881A (zh) * | 2017-01-23 | 2017-06-13 | 上海鹰谷信息科技有限公司 | 化合物管理信息的可配置模板的创建方法 |
WO2017162024A1 (zh) * | 2016-03-22 | 2017-09-28 | 中兴通讯股份有限公司 | 组件和模板的可视化开发方法及系统、存储介质、设备 |
CN107241315A (zh) * | 2017-05-23 | 2017-10-10 | 广州唯品会网络技术有限公司 | 银行网关接口的接入方法、装置及计算机可读存储介质 |
CN110990076A (zh) * | 2019-11-20 | 2020-04-10 | 杭州安恒信息技术股份有限公司 | 一种基于责任链模式实现的热插拔组件链调用方法 |
CN112181398A (zh) * | 2019-06-13 | 2021-01-05 | 上海幻电信息科技有限公司 | 配置文件处理装置、方法及存储介质 |
CN113312039A (zh) * | 2021-06-25 | 2021-08-27 | 武汉众邦银行股份有限公司 | 一种构建责任树模式通用代码框架的方法及装置 |
-
2013
- 2013-11-28 CN CN201310633921.7A patent/CN103605526A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017162024A1 (zh) * | 2016-03-22 | 2017-09-28 | 中兴通讯股份有限公司 | 组件和模板的可视化开发方法及系统、存储介质、设备 |
CN106843881A (zh) * | 2017-01-23 | 2017-06-13 | 上海鹰谷信息科技有限公司 | 化合物管理信息的可配置模板的创建方法 |
CN107241315A (zh) * | 2017-05-23 | 2017-10-10 | 广州唯品会网络技术有限公司 | 银行网关接口的接入方法、装置及计算机可读存储介质 |
CN107241315B (zh) * | 2017-05-23 | 2020-08-11 | 广州唯品会网络技术有限公司 | 银行网关接口的接入方法、装置及计算机可读存储介质 |
CN112181398A (zh) * | 2019-06-13 | 2021-01-05 | 上海幻电信息科技有限公司 | 配置文件处理装置、方法及存储介质 |
CN110990076A (zh) * | 2019-11-20 | 2020-04-10 | 杭州安恒信息技术股份有限公司 | 一种基于责任链模式实现的热插拔组件链调用方法 |
CN113312039A (zh) * | 2021-06-25 | 2021-08-27 | 武汉众邦银行股份有限公司 | 一种构建责任树模式通用代码框架的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103605526A (zh) | 一种基于责任链模式的模版组件化生成代码的方法 | |
CN102246150B (zh) | 转换用户脚本代码来进行调试 | |
CN105447643A (zh) | 一种面向云计算平台的科学工作流系统及方法 | |
CN102270125A (zh) | Web应用的开发装置及其开发方法 | |
US20030200533A1 (en) | Method and apparatus for creating software objects | |
CN101183335A (zh) | 一种实现嵌入式软件异常测试的方法及系统 | |
CN112988153A (zh) | 基于微前端的数据处理方法及框架 | |
CN104679488A (zh) | 一种流程定制开发平台及流程定制开发方法 | |
CN101859245A (zh) | 一种生成用户界面的方法和装置 | |
CN103500087A (zh) | 一种基于maven插件和freemarker模版的代码生成方法及装置 | |
CN101859244A (zh) | 多工具链工程构建方法及系统 | |
CN102368216A (zh) | 一种基于项目自动构造的流程实现方法 | |
CN102929627B (zh) | 基于ate的测试程序自动生成方法及ate测试方法 | |
CN106354748A (zh) | 一种网页生成方法和装置 | |
CN103631719A (zh) | 一种Web自动化测试方法和装置 | |
CN104133676A (zh) | 一种基于脚本的功能执行方法和设备 | |
CN105373381A (zh) | 一种移动终端的桌面启动器的制作方法及制作系统 | |
CN103513966A (zh) | 基于组件的php开发框架 | |
CN105511868A (zh) | 一种打包iOS应用程序的方法 | |
CN104133588A (zh) | 一种基于脚本的继电保护装置图形开发方法 | |
CN102708051A (zh) | 程序持续集成的方法及系统 | |
CN104699518A (zh) | 一种基于微内核插件的万用抄表机适配器及其实现方法 | |
CN102375743B (zh) | 一种基于模型和模板开发soa系统的方法 | |
CN106371868A (zh) | 一种自动化测试方法、系统及测试机器 | |
CN103699478A (zh) | 一种测试案例生成系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140226 |