一、jcf简介<o:p></o:p>
1、这个代码生成工具是针对java command framework(简称jcf)快速生成增删改查代码,jcf集成了struts、spring、hibernate,并通过Command模式引入了EJB2.0的无状态sesson bean(简称slsb),整个系统就一个slsb或者为了功能的划分而区分若干个slsb,所以配置文件非常简单,甚至不用修改即可用在别的项目中。
2、jcf支持灵活的部署方式,可以将系统的前台(主要是struts部分,有jsp、action、form、javascript、html等)和后台(spring、hibernate等)通过slsb分开,由于EJB天生就具有远程调用的功能,可以将前台和后台分开部署,实现一个后台支持多个客户端(前台),也可以利用Spring的设值注入更改后台的入口类delegate,将EjbDelegate改为PojoDelegate就可以绕过EJB直接调用后台的接口。前台引入后台打出来的**server**.jar包(,后台同时也打出一个**client**.jar包,用在ejb场景)并融合Spring的配置文件即可绕过EJB调用。这种模型给开发和测试带来极大的方便。
3、jcf可以很方便的部署在各个服务器上,在应用服务器Weblogic和Jboss上可以应用slsb来实现分布式和声明式的事务支持。更改一下Spring的配置文件,不用slsb也可以在web服务器tomcat等上面运行。利用Hibernate可以轻易的在不同的数据库中进行转换。
4、jcf开发效率和运行效率都有很好的表现,并且struts和hibernate都可以替换,spring也可以换掉,jcf是设计模式的体现。
5、jcf利用spring acegi来实现灵活可靠的权限控制,实现到页面和方法的控制级别,并且权限可以写到数据库中。
6、jcf目前用到的技术包括文件上传和下载、利用axis来作webservice和用jms来发送异步的消息。
7、jcf实现类似于http请求,每个请求发送一个request并返回一个response,不记录每个请求的状态,但是记录一个请求中的状态,以实现每个请求中command的流向。每个command可以是一个原子操作,然后在spring中配置几个command一起按照一定的流程协助完成一件事情,大大的提高了代码的重用性。Jcf是一个简单的工作流系统。
7、目前代码生成支持mysql和oracle2种数据库,暂时不支持前台struts代码的生成。
<o:p> </o:p>
二、artemis使用方法<o:p></o:p>
Artemis使用方法,以mysql为例子:
1、 修改db-config.properties。
2、 点击artemis.bat生成文件。
3、 由于生成的代码涉及到每张表的6个原子操作,不是每个操作都用的上,所以先将文件放在其他地方在手工拷贝回去工程中。
4、 注意:template目录下是代码模版,如无必要不用改动。
<o:p> </o:p>
db-config.properties介绍:
文件中每行前面带#表示注释,主要涉及的配置项有:
#mysql配置
dbUsername=root //用户名
dbPasswd= //密码
dbConnectString=jdbc:mysql://127.0.0.1:3306/mxidea //连接串
<o:p> </o:p>
#文件将要写到的系统路径
path=d:/!jcfSrc/ //临时文件写到d盘的!jcfSrc目录
#基本的包路径
packagePath=com.mxidea.bizservice
<o:p> </o:p>
#将要生成的表名和实体类的名字,要一一对应,之间用逗号相隔
TableName=t_comment,t_user_space
Entityname=Comment,UserSpace
<o:p> </o:p>
生成的文件包括:
1、 junit test :TestBizDelegate.java
2、 delegate和其接口
3、 实体类 在model下
4、 Hibernate的配置文件 hbm.xml,目前支持单主键和hibernate的退化使用(具体意思可以到网上查一下),可以用myeclipse或者midgen生成。
5、 Dao类
6、 公共服务名定义(jcf需要)ServiceConsts.java
7、 Command,每张表的6个操作,具体看代码吧。
8、 生成dao,command和processor(流程定义,包括若干个command)的spring的配置文件。
<o:p> </o:p>
有些思想来源于别人的灵感,如jcf的思想、权限控制和状态机部分。