[发明专利]一种基于声明式的代码生成编译执行方法在审
| 申请号: | 202210061795.1 | 申请日: | 2022-01-19 |
| 公开(公告)号: | CN114461206A | 公开(公告)日: | 2022-05-10 |
| 发明(设计)人: | 黄涛;谭敏锋;王文友;魏俊华;刘意川 | 申请(专利权)人: | 北京致远互联软件股份有限公司 |
| 主分类号: | G06F8/35 | 分类号: | G06F8/35 |
| 代理公司: | 北京权智天下知识产权代理事务所(普通合伙) 11638 | 代理人: | 郑元昊 |
| 地址: | 100089 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 声明 代码 生成 编译 执行 方法 | ||
本发明公开了一种基于声明式的代码生成编译执行方法,本发明提供了一种声明机制,使开发人员能够按照代码生成项目具体的业务将整个工程拆分为不同的代码生成模块独立进行开发,各模块可以共享代码生成元数据但互不影响。同时还提供了代码装饰机制,在不影响原有代码模板逻辑的情况下可以增加新的功能。良好的适应了大型的复杂工程代码生成迭代开发的需求。通过以上两种与现有技术相比显著的优点,将代码生成开发创新性的与应用按需求迭代开发充分的结合到了一起。开发人员的代码生成开发过程实际上就是需求变更的过程,模板引擎本身的执行变得几乎透明。
技术领域
本发明涉及代码生成技术领域,具体为一种基于声明式的代码生成编译执行方法。
背景技术
现有的代码生成技术在实际的使用过程中欠缺灵活性,存在如下明显的缺点:
1.无法支撑大型项目代码生成的需求。
一个大型的项目通常需要将不同的功能模块拆分,由不同的开发人员进行不同模块功能的开发。对应到模板生成,就需要不同的开发人员编写不同的代码模板,同时提供相应模板的参数。由于一个大型项目几乎不可能由一个开发人员就能够独立开发完成,且不同模块开发人员间的工作应该能够同时推进,互不影响,在后续的迭代中还可能继续添加功能,现有的代码生成技术预先编写好所有的代码模板,同时一并提供所需要的所有参数的模式,就只能适应简单业务的需求。
2.无法在不改变原有模板和参数注入逻辑的情况下在原有模板中插入新的代码。
现有的代码生成技术,模板已经预先编写好,如果由于后续功能开发的需要,想要在之前生成的代码中加入新功能的逻辑,就需要改写原有的代码模板。这样极有可能影响到已有的逻辑。同时新添加的代码逻辑极大可能是一种切面代码,即根据实际的环境参数,即使需要在多个不同的文件中生成新功能的代码,但这些新代码应该是要么同时生成,要么都不生成。这种不影响原有代码的逻辑生成切面代码的代码生成方式显然是现有代码生成方式不具有的。
3.无法将生成的代码变为可运行的应用
现有的代码生成技术只关注代码生成,只会将模板代码输出为静态文件,没有代码生成生命周期的概念,就无法管控代码生成的所有流程,无法将一个输出的项目代码经过编译和构建形成一个可运行的应用程序。
发明内容
本发明的目的在于提供一种基于声明式的代码生成编译执行方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于声明式的代码生成编译执行方法,包括以下步骤:
A、按项目功能划分功能模块,由不同模块的开发人员进行对应功能的代码生成开发;
B、初始化代码生成上下文;
C、异步执行代码生成任务;
D、异步输出代码文件。
优选的,所述步骤A中具体方法如下:
1)编写ftl模板文件和其抽象类实现:通过实现这个freemarker抽象类或使用一个生成此freemarker抽象类的建造器来将编写好的ftl模板和模板参数传递相关联;
2)注入代码生成元数据;
3)添加代码生成任务。
优选的,所述步骤B中上下文贯穿整个代码生成生命周期,使容器中所有声明的组件能够衔接到一起,同时此代码生成上下文是被代理的,根据需要对代码生成生命周期中的某个过程添加切面逻辑,实现高级功能;代码生成上下文的初始化过程会扫描所有的元数据注入声明,将开发人员自定义的元数据注入到上下文以在整个代码生成周期中共享这些元数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京致远互联软件股份有限公司,未经北京致远互联软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210061795.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:提高的植物中的蛋白质表达
- 下一篇:单通道单脉冲跟踪方法及系统





