`
寻觅一只耳朵
  • 浏览: 35477 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ssh三大框架代码的自动生成

    博客分类:
  • java
阅读更多
引用

为什么需要自动生成代码?

作为一个软件公司,开发团队非常重要,作为一个开发团队,人员配备、开发效率等都非常重要,但是开发效率包含很多,如:代码质量(扩展性、重构性 等),但是这些都是建立在规范的代码之上来进行,在一个团队中,每个开发者都有自己的习惯方式来进行代码的编写,例如(ssh文件名举例):

dao接口: 写法一:IXXXDao, 写法二:IXXXDAO 等等

dao实现类: 写法一:XXXHibernateDAO,写法二:XXXHibernateDao,写法三:XXXDAO等等

service接口:写法一:IXXXService,写法二:IXXXManager等等

service实现: 写法一:XXXServiceImpl,写法二:XXXService,写法三:XXXManagerImpl等等

action: 写法一:XXXAction XXXManager等等

还有配置文件的一些注入,以及命名,会有很多种,可能这时会有很多人认为只要function体里面的代码逻辑质量高,很规范的运用了面向对象的思 想,对逻辑封装的好,性能高,这些规范不规范的有什么问题,影响不了程序的性能,如果你是这样想的,那么我会对你说,你成不了气候,永远都是一个边缘的开 发者, 打个比方:一个公司如果没有良好的规章制度,你觉得这个公司好吗? 同样的道理,一个好的项目,没有自己的一套编码规范,是个好的项目吗?

就算在项目开发前定制了规范,也有开发人员因为自己的习惯忘记了定制的规范,按照自己的风格来进行代码编写,这样久而久之,一个项目中各种风格的代 码都有,对于ssh架构的开发人员每天都会遇到重复的代码编写(当然对重复的代码有可能你会ctrl+c,ctrl+,就算是ctrl+c,ctrl+v 也需要花大量的时间做些无意义的代码编写,这样降低了开发效率,同时好多开发人员对ssh也产生了抵触,认为自己一天到晚都在写些没有用的代码,自己感到 很沮丧!


本程序的来源


jsmart

在网上search了这样的插件,以及相关的源码,对jsmart映象比较深,试用该插件后发现功能虽然强大(能够生成各种框架的环境搭建,以及fck等编辑器的初始化),但是发现有很多的规则受限制:

1.每次自动生成的代码都是一次性全部初始化生成,对于二次开发的人员来讲,需要对自己想要指定的单表(数据库表)进行生成 (bean,hbm.xml,dao.service,action)时,该插件无法做到,我想了一下,作者应该会考虑到这一点吧,因此询问该作者后,他 说要购买企业版,能够达到该功能

2.定制了自己的数据库规范, 该插件对数据库表进行了限制,如:数据库表名不能带有_(下划线),字段名也不能带有,这点我是最受不了的,不想多说了,从这点,我也就没有继续往下试了.


rapid-framework

经过再三的筛选,最后选择了一个开源的框架rapid-framework,如果想要进行全新开发一个项目,又想快速的初始化项目,那么rapid-framework


因为本人仅限于生成自己定制的模版文件,然后自动生成,并非想自动生成整个项目,所以对该项目的部分代码进行了解读,并对需要使用的类提取到自己的项目中,然后对自己需要的定制作了相应的修改,完成了一个自动生成的程序.


生成代码后的目录结构如下:

com.bestsoft.ssh目录下的

bean/{自定义的存放包}目录: bean文件、hbm.xml文件

dao/{自定义的存放包}目录:接口类

dao/hibernate/{自定义的存放包}目录:实现类

service/{自定义的存放包}目录:接口类

service/impl/{自定义的存放包}目录:实现类

action/{自定义的存放包}目录:struts2的类


conf目录下的

{自定义的存放包}目录:4个xml文件(applicationContext-dao.xml(dao注入配 置),applicationContext-service.xml(service注入配置),action-servlet.xml(action 注入配置),struts-{自定义的存放包名}.xml(struts2的action配置文件))


以上是根据我自己项目目录以及代码需要自动生成哪些内容而自己定制的,包括类中的方法等自己都可以定制.

 

实现技巧:

generator\template\src\conf\${subpackage}下的文件实现:

generator\template\src\conf\${subpackage}\目录下有8个xml文件,4个配置文件中是带有xml文件 头信息的,4个配置文件不带头文件信息,也就是说这4个文件是标准的配置文件,还有4个是非标准的(文件名中带有-insert的)。

配置文件的作用:

标准的配置文件是在第一次生成代码的时候调用,来生成一个完整的配置文件的内容,如果说想在此配置文件的内容中增加内容,怎么办?

大家可以看到,标准的4个配置文件中都带有“<!– webapp-generator-insert-location –>”这样的注释,该注释的主要作用是用来在该配置文件原有内容的基础上增加新的内容,但是这个新增加的内容从哪里来? 这些内容就是从带"-insert"的配置文件中来,把带"-insert"的配置文件内容加入到不带“insert”的配置文件中去。

generator\template\src\${basepackage_dir}目录下的文件实现:

generator\template\src\${basepackage_dir}\bean 该目录下文件定制bean,以及or/map文件的模板

generator\template\src\${basepackage_dir}\dao 该目录下文件定制dao文件的模板

generator\template\src\${basepackage_dir}\service 该目录下文件定制service文件的模板

generator\template\src\${basepackage_dir}\web\action\${subpackage} 该目录下文件定制action文件的模板。

上述文件模板中的内容可以根据自己的需求来作相应功能的增加,修改等


generator\src目录下的文件实现:

generator.properties文件:配置信息,大家可以看到我们的目录或者模板文件中含有${}的符号,这些${}的内容就是在这里进行配置的.


GeneratorMain.java(该类用来传入一个参数:"表 名(数据库表)",然后就会生成想要生成的模版),Generator.java(该类实现想要定制哪些模版文件来进行生成,生成后的文件存放在哪 里),generator.properties(配置自己的数据库信息,存放包的信息等),template目下的所有文件(该目录下存放的是模版文 件,用来只自定义自己想要生成类,xml文件的模版内容)。

红色部分中的类可能是你要进行修改的类,其他包的类大家一看就知道是做什么用的.


附件是该程序的代码,该程序只是一个demo,提供了解决该问题的方法,每个项目定制自动生成代码的内容都不一样,但是只需要在该demo的基础上 做相应的修改,就可以实现自己想要的内容, 如果还有不清楚的地方,可以留言给我,我会针对留言来进行回复,因为该demo只对ssh2做了程序自动生成,如果该demo无法满足你更多的需要,可以 在网上搜索rapid-framework框架,来进行更多框架的代码自动生成.




分享到:
评论
1 楼 寻觅一只耳朵 2011-08-10  
     

相关推荐

    ssh框架下代码自动生成

    总的来说,SSH框架下的代码自动生成是一个高效开发的手段,GeneCode1.3.jar这样的工具能够帮助开发者快速构建项目框架,节省时间和精力,使他们能够更专注于提升应用的功能和用户体验。正确理解和使用这类工具,将对...

    基于SSH框架的java代码自动生成.pdf

    基于SSH框架的Java代码自动生成是软件复用技术的应用,它利用Hibernate生成的JavaBean数据对象,结合模板生成技术和配置树的层次方法,自动化控制层的编码工作。通过Eclipse的SWT技术实现可视化的用户界面,这一方法...

    SSH代码生成器

    SSH框架是Java开发中的一个经典组合,它极大地提高了开发效率,简化了项目的构建过程。SSH框架的每个组件都有其特定的功能:Spring负责依赖注入和管理事务,Struts2作为MVC框架处理请求和视图展示,而Hibernate则是...

    SSH代码自动生成器

    SSH(Secure Shell)代码自动生成器是一款用于自动化创建和管理SSH连接、配置及代码的工具。在IT行业中,SSH常用于远程控制服务器,传输文件,以及执行命令等操作,尤其在Linux系统管理中不可或缺。这款代码自动生成...

    SSH项目模板,代码自动生成

    代码自动生成工具可以极大提高开发效率。在SSH项目中,它们可以创建常见的CRUD操作,如增删改查,基于数据库表自动创建实体类、DAO、Service和Action。这减少了重复劳动,让开发者能够更专注于业务逻辑和功能实现。...

    ssh代码自动生成器

    SSH代码自动生成器是一个工具,能够帮助开发者快速生成SSH框架下的基础代码,大大减少了手动编写代码的工作量,提高了开发效率。 Struts2作为MVC框架,负责处理HTTP请求和视图展示,提供了丰富的动作和结果类型,...

    SSH代码自动生成工具

    SSH代码自动生成工具是一款专为开发人员设计的实用软件,其主要功能是简化SSH框架(Struts、Spring、Hibernate)的编码工作。SSH是Java Web开发中的一个流行组合,Struts提供了MVC(模型-视图-控制器)架构,Spring...

    ssh 自动生成代码

    这个压缩包文件的标题"ssh 自动化代码"暗示了它可能包含一个工具,用于自动生成基于SSH框架的代码,这在开发过程中可以极大地提高效率。 **Struts** 是一个MVC(Model-View-Controller)框架,它负责处理HTTP请求,...

    基于SSH框架的代码生成工具的设计与实现

    综上所述,基于SSH框架的代码生成工具能够极大地提高软件开发的质量和效率,同时降低开发成本和风险。通过对关键技术的掌握和运用,开发人员可以更加专注于业务逻辑的设计与实现,而不是陷入到繁琐的编码工作中。...

    eclipse插件生成ssh框架

    eclipse插件生成ssh框架和ssi框架

    ssh代码生成器轻松、快捷

    自动生成以下所有内容(即:完整的Java SSH支持的工程) Sturts2.0配置--&gt; sturts.xml、struts.properties Spring2.0配置--&gt; applicationContext.xml Hibernate3.2配置--&gt; hibernate.cfg.xml JSP文件--&gt; 具有Struts2.0...

    SSH代码自动生成工具(1/5)

    以Freemarke,Displaytag作为模版引擎,通过数据模型(原有的表注释,字段注释)生成基础的功能模型,同时生成一部分典型的可运行、可测试的业务功能代码和配置信息(如strtus配置文件,spring配置文件)。 JSmart同时...

    ssh代码生成器

    SSH代码生成器v2.1针对这些框架,能够自动生成SSH或S2SH项目的基本结构,包括控制器、模型、视图以及相关的配置文件。这大大减少了开发者手动编写这些基础代码的时间,提高了开发效率。以下是一些关键知识点: 1. *...

    SSH代码自动生成工具2

    以Freemarke,Displaytag作为模版引擎,通过数据模型(原有的表注释,字段注释)生成基础的功能模型,同时生成一部分典型的可运行、可测试的业务功能代码和配置信息(如strtus配置文件,spring配置文件)。 JSmart同时...

    SSH自动生成代码工具加MySQL数据库

    就可以生成SSH框架,非常适合做开发,速度超快,有分页,有SQL语句自动生成,一般的查询 删除 添加 修改 更新 分页 过滤器都有,要的自己去下载,不多说 ,可能分数有点搞,这个不要注册码,网上的都不怎么好,不行...

    SSH代码生成工具 SSH代码生成器

    生成的代码直接拷贝到MyEclipse里,做简单设置,发布后即可运行! 最多3分钟的生成过程,一次生成,全程无忧! 更有9组页面按钮,6套页面样式供您选择,灵活的SSH架构、清晰的SSH层次结构!一旦拥有,JAVA无忧!

    基于SSH框架的JavaEE项目代码生成工具的研究与实现.pdf

    代码生成模块负责将表格元信息转化为接口、类等代码,文件目录结构生成模块负责根据相对应的数据元素信息在对应目录结构下自动生成相应的JSP页面、输出映射的JAVA代码、以及相应的配置文件。 3. 基于SSH框架的Java ...

    SSH自动生成代码.zip

    标题"SSH自动生成代码.zip"表明这是一个关于使用SSH框架的代码生成工具,这个工具可能是为了帮助开发者快速构建基于SSH的Java Web项目而设计的。它可能包含了一套自动化脚本或者GUI应用程序,能够根据用户的需求生成...

    java web ssh框架 后台系统自动生成工具

    本工程是基于ssh框架的后台自动生成工具,该工具可以生成dao,daoImpl,service,serviceImpl,Action,applicationContext.xml,struts.xml,web.xml文件,可以使开发人员尽量少的进行编写重复代码以及避免一些错误...

    SSH三大框架的网页系统设计

    在SSH框架基础上,项目可能还引入了网络爬虫技术,用于自动化地从互联网上抓取数据。网络爬虫通常由爬取策略、解析规则和存储机制三部分组成,可以帮助开发者快速获取大量网页信息,为数据分析或信息提取提供便利。 ...

Global site tag (gtag.js) - Google Analytics