注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

和申的个人主页

专注于java开发,1985wanggang

 
 
 

日志

 
 

AndroMDA:概貌和工作原理  

2009-05-14 18:37:55|  分类: 项目开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

当你使用CASE工具画出包,类,属性,方法和关系时,AndroMDA的“概貌”就形成了。然后,你把模型保存为XMI格式,并用AndroMDA和XDoclet产生整个组件模型的Java源代码。AndroMDA和XDoclet都可以和著名的构建工具Ant进行集成。你通常会使用Ant的命令行版本,但也可以在IDE如Eclipse或JBuilder中使用Ant。无论是哪一种方式,你都要使用自己定制的Ant构建脚本,并在脚本中把AndroMDA定义为其中的一个Task。 在CASE工具中用UML建模 你可以使用UML的图形符号为现实世界中的事物建模。例如,考虑一个汽车租赁系统,用于管理客户,司机,汽车和租赁合同。这个系统UML模型的类图可能是如下的样子:

AndroMDA:概貌和工作原理

    将模型保存为XMI格式。某些CASE工具把这称为“export”,用于区别它本身私有的格式。 代码生成器 从XMI模型中产生代码,Ant构建脚本经过以下的步骤:

Ant Task读入XMI格式的UML模型,并在内存中生成抽象的语法树(abstract syntax tree),其中包含包,类,属性,方法和关系的信息。
然后,使用Velocity模板处理引擎来处理entity bean,session bean,Hibernate类或别的代码生成模板,所有的模板都基于从CASE工具中产生的抽象语法树。它使用一个脚本helper facade来屏蔽UML元模型的复杂性,因此模板的开发者可以使用容易理解的API来为脚本写代码。这些步骤会产生一些源代码文件。
最后,Ant脚本调用XDoclet中的<ejbDoclet>或<hibernateDoclet> Task。对于EJB,XDoclet task读入所有的bean类信息并生成bean的接口和部署配置文件。对于Hibernate,XDoclet生成包含持久层映射信息的XML文件。
    使用Cartridges定制输出 到此为止,你可能以为AndroMDA是一个EJB或Hibernate JavaBean的生成器。其实,AndorMDA可以生成任何东西! 事实上,AndroMDA对于它生成的东西一无所知。它拥有一个称为“cartridges”的可插入模块。一个Cartridge由一套定义生成格式的模板文件组成。目前,AndroMDA包括四个cartridge:

andromda-java - 生成一般的Java源代码。
andromda-ejb - 生成EJB。
andromda-hibernate - 生成Hibernate ORM工具的持久层类。
andromda-struts - 生成Jakarta Struts的web页面,form bean和action类。
    你可以选择使用哪一个cartridge来产生你的应用框架。你也可以编写你自己的cartridge - 一旦你理解了cartridge的基础知识及其XML描述文件,编写一个新的cartridge非常容易! AndroMDA核心自动检测安装在类路径下的cartridge。如需要了解更多cartridge的信息,请参见本网站的其他文档。 EJB Cartridge生成代码的例子 从上面汽车租赁系统模型的客户模型部分,AndroMDA(使用andromda-ejb)和XDoclet将为你产生下面的代码。Bean类使用 标记,其他类使用 标记。你可以点击文件名查看文件的内容。

Customer.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerBean.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerBeanCMP.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerBeanImpl.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerData.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerLocalHome.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerUtil.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerService.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerServiceBean.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerServiceBeanImpl.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerServiceHome.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 CustomerServiceUtil.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 Driver.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 DriverBean.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 DriverBeanCMP.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 DriverBeanImpl.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 DriverData.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 DriverLocalHome.java
AndroMDA:概貌和工作原理 - 和申 - 和申的个人主页 DriverUtil.java

   编写业务方法 你可能知道,使用代码生成器并没有完成了所有的工作。编写Bean的主体即业务逻辑是留给你的工作。AndroMDA为你构建了一个应用框架,你需要往里面填充代码。这些所谓的“implementation classes”来自bean类,是类继承结构树上的叶子。AndroMDA一次性地产生这些代码并不再修改它们。这能够确保手工编写的代码不被代码生成器覆盖。 因此,在实现类中实现你的业务方法,并启动Ant构建脚本用于编译Java文件的其他task,并把编译好的class文件打包到一个ejb-jar文件中。jar文件当然也包含了生成的部署配置文件。 最后的工作 最后的工作当然是发布到应用服务器上。以JBoss为例,只需简单地将jar文件复制到JBoss的部署路径中即可。

  评论这张
 
阅读(970)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016