CN106598554B - 一种代码生成装置 - Google Patents
一种代码生成装置 Download PDFInfo
- Publication number
- CN106598554B CN106598554B CN201510662034.1A CN201510662034A CN106598554B CN 106598554 B CN106598554 B CN 106598554B CN 201510662034 A CN201510662034 A CN 201510662034A CN 106598554 B CN106598554 B CN 106598554B
- Authority
- CN
- China
- Prior art keywords
- code
- code generation
- user
- management
- container
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种代码生成装置,所述装置包括:框架组件、容器和代码生成单元,其中:所述框架组件,适于确定所述代码生成的方式,包括拦截器管理、事务管理、数据访问,还包括与预设类型的用户对应的代码生成方式;所述容器,适于接收来自所述代码生成单元的代码,并为所述代码提供运行环境;所述代码生成单元,适于接收用户的开发需求,调用所述框架组件,生成出所述用户需要的代码,并将所述代码发送至所述容器进行运行。采用上述方案可以提高软件应用系统开发效率,且可以满足用户特定的需求。
Description
技术领域
本发明涉及系统开发领域,尤其涉及一种代码生成装置。
背景技术
随着信息技术的发展,人们对于应用系统的需求也越来越多,因而需要开发各种各样的应用系统去满足人们日益增长的功能需求。
目前,后台应用系统开发所需要的代码,是通过直接使用通用的开发框架来进行生成。
但是,若使用上述的方案去开发企业应用系统等专用的应用系统,开发效率很低。
发明内容
本发明解决的问题是提高软件应用系统开发效率。
为解决上述问题,本发明提供一种代码生成装置,所述装置包括:框架组件、容器和代码生成单元、其中:
所述框架组件,适于确定所述代码生成的方式,包括拦截器管理、事务管理、数据访问,还包括与预设类型的用户对应的代码生成方式;
所述容器,适于接收来自所述代码生成单元的代码,并为所述代码提供运行环境;
所述代码生成单元,适于接收用户的开发需求,调用所述框架组件,生成出所述用户需要的代码,并将所述代码发送至所述容器进行运行。
可选地,所述预设类型用户为组织机构或个人。
可选地,所述组织机构为企业,与所述企业对应的代码生成方式包括以下至少一种:服务注册、生命周期管理、资源访问及远程调用服务器暴露。
可选地,所述装置还包括:功能组件,适于为所述用户提供优化所述代码所需的独立功能模块。
可选地,所述功能组件,包括以下至少一种:
权限管理模块、定时任务模块及数据字典模块,其中:所述权限管理模块,适于支持权限、角色的定义、授权管理以及鉴权;
所述定时任务模块,适于支持定时任务的开发、配置、自动运行以及管理;
所述数据字典模块,适于支持系统配置项的增删改查。
可选地,所述容器为Guice容器。
可选地,所述代码为以下至少一种:接口代码、服务代码、数据访问代码及领域模型代码。
与现有技术相比,本发明的技术方案具有以下优点:
通过在代码生成装置中增加与预设类型用户对应的代码生成方式,使得开发人员在生成代码时,无须针对每个用户都生成或重新定义代码生成方式,而是直接调用适于所述用户的框架组件,即可直接生成所需的代码,因而可以提高软件应用系统开发效率,且可以满足用户特定的需求。
进一步,通过提供一些完整企业应用系统公共的功能模块,在应用所述代码生成装置开发系统的过程中,可以直接调用所述功能模块,因而可以更加提高企业应用系统开发过程的效率。
附图说明
图1是本发明实施例中的一种代码生成装置的结构示意图;
图2是本发明实施例中的另一种代码生成装置的结构示意图。
具体实施方式
目前,后台应用系统开发所需要的代码,是通过直接使用通用的开发框架来进行生成。通用的开发框架是具有完整解决方案的开源软件,使用起来较为方便。但是,若使用上述的方案去开发企业应用系统,由于所述开发框架的通用性,会导致应用系统开发过程的效率低,无法满足企业特定的需求。
为解决上述问题,本发明实施例提供了代码生成装置,通过设置与预设类型的用户对应的代码生成方式,开发人员使用所述代码生成装置生成所需的代码时,无须再去专门开发所述代码生成方式,可以直接调用所述代码生成方式,从而可以提高企业应用系统开发过程的效率,并且可以满足企业特定的需求。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1示出了本发明实施例中的一种代码生成装置的结构示意图,所述代码生成装置1可以包括:框架组件11、容器12及生成单元13,其中:
所述框架组件11,适于确定所述代码生成的方式,包括拦截器管理、事务管理、数据访问,还包括与预设类型的用户对应的代码生成方式。
所述容器12,适于接收来自所述代码生成单元的代码,并为所述代码提供运行环境。
所述代码生成单元13,适于接收用户的开发需求,调用所述框架组件11,生成出所述用户需要的代码,并将所述代码发送至所述容器12进行运行。
在具体实施中,所述预设类型的用户可以为组织机构,也可以为个人用户。通过这种方法,可以扩大所述代码生成装置的服务范围。
在具体实施中,所述拦截器管理,类名为:InterceptorConfig Module,可以读取配置文件中对Pointcut和拦截器链条的定义,并将拦截器注册到匹配Pointcut表达式的方法上。所述事物管理,类名为:Transaction Module,可以读取配置文件中对Pointcut和事务属性的定义,并将事务拦截器注册到匹配Pointcut表达式的方法上。、数据访问。所述数据访问,类名为:Dao Module,可以读取配置文件中对DAO相关参数的配置,并将IBaseDao<Domain,PK>绑定到具体的DAO实现类。
需要说明的是,在具体实施中,所述组织机构可以为企业,而与所述企业用户所对应的代码生成方式可以有多种。比如所述代码生成方式可以为服务注册,也可以为生命周期管理,还可以为资源访问,还可以为远程调用服务器暴露,当然还可以为所述代码生成方式的任意一种组合。无论所述代码生成方式的组合如何,均不对本发明构成限制,只要包括至少一种以上所述代码生成方式即可。
由于以上所述的代码生成方式都是专门只对特定的企业用户,从而可以提高企业用户使用所述代码生成装置开发所需的系统的效率,并且还可以满足企业用户的特定需要。
比如所述资源访问,类名为:Resource Module,可以通过扫描服务类属性上的@Resource注解,获取Java命名和目录接口(Java Naming and Directory Interface,JNDI)资源的实例对象,从而可以帮助企业用户实现企业内部消息的管理。还比如,所述服务注册,类名为:Service Module,可以扫描服务接口上的@Service注解,以完成服务接口和实现的绑定。
再比如所述远程调用服务暴露(Java Script Object Notation RemoteProcedure Call Protocol,JsonRpc),类名为:Json Module,可以通过扫描服务接口,实现类,以及方法上的JsonRpc服务暴露注解,如@JsonRemote,@Parameter,@ModelBean等,以完成Http+Json的服务暴露,客户端可以直接通过Http请求访问服务方法,得到Json格式的对象集合,从而使得企业内部可以直接调用符合所述JsonRpc的接口。
再比如,所述生命周期管理,类名为:Life Cycle Module,可以通过扫描服务方法上的生命周期回调函数@PostContruct和@PreDestroy调用,服务实例生成和注销的之后可以被所述容器12自动调用。
在具体实施中,所述代码生成装置1可以设置于开发框架中,并将所述开发框架与应用组件相连,以实现不同的应用。
图2示出了本发明实施例中的另一种代码生成装置2的结构示意图.如图2所示,除框架组件21、容器22及代码生成单元23外,所述装置2还可以包括:功能组件24。
其中,所述功能组件24,可以为所述用户提供优化所述代码所需的独立功能模块,可以进一步方便企业用户使用所述代码生成装置开发系统的效率。本领域技术人员可以分别参照上述对图1中框架组件11、容器12及生成单元13的描述,实施所述框架组件21、容器22及生成单元23,此处不再赘述。
在具体实施中,所述功能组件24可以包括多种类型,比如所述功能组件24可以为权限管理模块,以支持权限、角色的定义、授权管理以及鉴权;也可以为定时任务模块,以支持定时任务的开发、配置、自动运行以及管理;还可以为数据字典模块,以支持系统配置项的增删改查。当然还可以为所述功能组件24的任意组合。
通过提供所述企业公共的功能组件24,可以满足企业特定的需求。例如,所述权限管理模块,可以支持企业管理过程中,设置某些人具有特定的权限可以查看或者处理一些特定的事务,因而可以使得企业有序的运行。
在本发明一实施例中,为了提高代码生成的速度,可以选用Guice作为容器22,以为所述代码提供运行环境。
在具体实施中,所述代码生成装置2可以生成多种类型的代码,比如可以为接口代码,也可以为服务代码,还可以为数据访问代码,还可以为领域模型代码,从而可以满足不同用户的不同需求。
并且,所述代码为开发一个应用模块必不可少的基础代码,开发用户只需所述代码生成装置生成出的代码的基础上,再增加具体的业务逻辑代码,就可以完善所述应用模块,最终生成所需的代码,从而可以节约开发时间,提供开发的质量,并简化了后期的运营维护。
为使得本领域的技术人员更好地理解和实现本发明,以下结合图2对所述代码生成装置的工作原理进行介绍。
当用户需要使用所述代码生成装置开发所需的系统,也即生成所需的代码时,所述代码生成单元23可以接收所述用户发送的代码生成需求信息,接着调用所述框架组件21,也就是说,按照所述框架组件21给予的框架标准生成能满足所述用户需求的基础代码。
由于所述框架组件21中包括了很多根据不同用户类型所设置的不同的代码生成方式,故可以满足不同用户的特定需求。比如所述用户为企业用户的时候,所述基础代码即可以满足所述企业用户的特定需求,比如对内部消息的管理。
而为了更进一步优化所述基础代码,所述用户还可以直接调用所述功能组件24,以实现一些常用的功能。比如可以调用权限管理模块,实现对企业员工的权限监管。然后,所述代码生成单元23即可把所述代码发送至所述容器22进行运行。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (6)
1.一种代码生成装置,其特征在于,包括:框架组件、容器和代码生成单元、其中:
所述框架组件,适于确定所述代码生成的方式,以便按照用户的开发需求生成后台应用系统,包括拦截器管理、事务管理、数据访问,还包括与预设类型的用户对应的代码生成方式;所述事务 管理,类名为:TransactionModule,可以读取配置文件中对Pointcut和事务属性的定义,并将事务拦截器注册到匹配Pointcut表达式的方法上;所述数据访问,类名为:DaoModule,可以读取配置文件中对DAO相关参数的配置,并将IBaseDao<Domain,PK>绑定到具体的DAO实现类;
所述容器,适于接收来自所述代码生成单元的代码,并为所述代码提供运行环境;
所述代码生成单元,适于接收所述用户的开发需求,调用所述框架组件,生成出所述用户需要的代码,并将所述代码发送至所述容器进行运行;
其中,当预设类型的用户为企业用户时,所述代码生成方式为服务注册、生命周期管理、资源访问、远程调用服务器暴露中的一种或几种。
2.根据权利要求1所述的代码生成装置,其特征在于,所述预设类型用户为组织机构或个人。
3.根据权利要求1所述的代码生成装置,其特征在于,还包括:功能组件,适于为所述用户提供优化所述代码所需的独立功能模块。
4.根据权利要求3所述的代码生成装置,其特征在于,所述功能组件,包括以下至少一种:
权限管理模块、定时任务模块及数据字典模块,其中:所述权限管理模块,适于支持权限、角色的定义、授权管理以及鉴权;
所述定时任务模块,适于支持定时任务的开发、配置、自动运行以及管理;所述数据字典模块,适于支持系统配置项的增删改查。
5.根据权利要求1所述的代码生成装置,其特征在于,所述容器为Guice容器。
6.根据权利要求1所述的代码生成装置,其特征在于,所述代码为以下至少一种:接口代码、服务代码、数据访问代码及领域模型代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510662034.1A CN106598554B (zh) | 2015-10-14 | 2015-10-14 | 一种代码生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510662034.1A CN106598554B (zh) | 2015-10-14 | 2015-10-14 | 一种代码生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106598554A CN106598554A (zh) | 2017-04-26 |
CN106598554B true CN106598554B (zh) | 2021-03-23 |
Family
ID=58553035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510662034.1A Active CN106598554B (zh) | 2015-10-14 | 2015-10-14 | 一种代码生成装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106598554B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783195A (zh) * | 2019-01-16 | 2019-05-21 | 杭州趣链科技有限公司 | 一种基于容器的智能合约实时调试方法 |
CN113157428B (zh) * | 2020-01-07 | 2022-04-08 | 阿里巴巴集团控股有限公司 | 基于容器的资源调度方法、装置及容器集群管理装置 |
CN112559137A (zh) * | 2020-12-26 | 2021-03-26 | 北京国腾联信科技有限公司 | 一种h5容器配置方法及装置 |
CN116112479A (zh) * | 2022-12-08 | 2023-05-12 | 联通(浙江)产业互联网有限公司 | http接口实现方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239056A (zh) * | 2014-09-16 | 2014-12-24 | 国家电网公司 | 一种软件生成方法、装置及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967485B (zh) * | 2006-06-20 | 2010-05-12 | 华为技术有限公司 | 一种实现j2ee应用的方法及系统 |
CN101727324B (zh) * | 2009-12-17 | 2013-03-27 | 中国电力科学研究院 | 一种代码生成方法及装置 |
EP2354968A1 (de) * | 2009-12-30 | 2011-08-10 | Tim Frey | Hyperadapter und Verfahren zum Zugreifen auf Dokumente in einer Dokumentenbasis |
CN103135976B (zh) * | 2011-11-30 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN103176785A (zh) * | 2011-12-26 | 2013-06-26 | 中国电信股份有限公司 | Widget 应用在线实现系统及方法 |
CN103246503A (zh) * | 2012-02-10 | 2013-08-14 | 上海乘亿信息科技有限公司 | 一种企业管理软件的应用开发架构 |
CN103309650B (zh) * | 2012-03-14 | 2016-08-24 | 阿里巴巴集团控股有限公司 | 持久层代码的生成方法和装置 |
CN103778026B (zh) * | 2012-10-24 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 对象调用方法和装置 |
CN103632101B (zh) * | 2013-12-09 | 2016-11-16 | 北京奇虎科技有限公司 | 一种拦截系统调用的方法和装置 |
CN104317570B (zh) * | 2014-09-29 | 2017-12-12 | 北京掌中经纬技术有限公司 | 动态解析Web应用的装置和方法 |
CN104899137B (zh) * | 2015-05-22 | 2017-09-01 | 华中师范大学 | 一种并发程序的缺陷模式发现方法 |
-
2015
- 2015-10-14 CN CN201510662034.1A patent/CN106598554B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239056A (zh) * | 2014-09-16 | 2014-12-24 | 国家电网公司 | 一种软件生成方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106598554A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Suryotrisongko et al. | Design and development of backend application for public complaint systems using microservice spring boot | |
CN111290865A (zh) | 一种服务调用方法、装置、电子设备和存储介质 | |
US20120047506A1 (en) | Resource abstraction via enabler and metadata | |
CN106598554B (zh) | 一种代码生成装置 | |
EP2724284A1 (en) | Access control architecture | |
CN110659206B (zh) | 基于微服务的模拟架构建立方法、装置、介质及电子设备 | |
US10162952B2 (en) | Security model for network information service | |
CN102306117A (zh) | 一种硬件检测自动报警的方法及装置 | |
CA2857897C (en) | Business rules batch processor | |
CN104866976A (zh) | 面向多租户的管理信息系统 | |
CN112579049A (zh) | 基于云平台的定制软件产品化管理方法及装置 | |
CN107277146B (zh) | 一种分布式存储业务流量模型生成方法及系统 | |
CN110427260B (zh) | 主机作业调度方法、装置及系统 | |
EP4155935A1 (en) | Cloud migration for legacy on-premises process code | |
CN112448909A (zh) | 电子锁管理方法、装置、系统及存储介质 | |
CN114327383A (zh) | 基于soa架构中间件的服务配置系统、方法及可读存储介质 | |
CN107077490B (zh) | 数据查询作业提交管理 | |
CN112099976A (zh) | 政务数据交换任务调度方法和装置 | |
US9608854B2 (en) | Method and system for automatic execution of scripts on remote agent-less client machines | |
CN102650940B (zh) | 一种跨平台的移动widget引擎架构方法 | |
Sakamoto et al. | Dynamically exposing and controlling physical devices by expanding web of things scheme | |
CN105100387B (zh) | 一种Windows Phone设备解锁方法、装置及系统 | |
CN112115303B (zh) | 数据处理方法及装置 | |
CN117056317B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
US20160248823A1 (en) | Messaging protocol |
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 |