当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

<b>轻量级的代码生成策划挑选</b>[Java编程]

赞助商链接



  本文“<b>轻量级的代码生成策划挑选</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

上次说到MyAppfuse要有一个代码生成工具, codegeneration.net上堆积了 各种平台各种语言的工具.

此中一些用到UML做元数据的,就变成了上年最风行的MDA tool.MDA其实是 超级炒冷饭了,偶N年前的毕业论文做的就是这个标题,目前再看进步也不大.

不过想下也正常.因为MDA是由模子、实现和转换程序三者构成的,假如模子 定义飞速发展了,与底层实现之间一定会形成宏大落差,需求转换程序做大量工 作来消弥.当落差充足大时,就会很少人乐意做这个转换工作.而为了削减落差 ,一是等底层实现的发展,但这是整个IT界的事情,不是MDA开辟者的个人问题 .别的就惟有减低模子定义的高度,比方AndroMDA,很多现成的模板都只依靠于 UML静态Class图,同时利用大量的Tagged Value,看上去和一个xml格局的自定 义模子没什么辨别.

所以,一来受底层实现的制约,二来OMG的构造也不像个很高产的组织,MDA 忽然爆发,大家洗脚上田不用再Coding的机会不大.但随着AOP,Meta-Data,O/R Mapping,IOC Container这些底层的发展,还有微软DSL对UML的打击,MDA还是会 持续渐渐发展,毕竟这是我们的梦.

当下还是挑些轻量级的代码生成筹划对比实际.我挑的是XML格局的自定义模 型 + jsp/Freemarker模板.当然也可以像Appfuse那样用XDoclet,但我认为 XDoclet的扩大性,管理性和实用范围都是最低的.也可以不用模板,用C#/Java 程序完好掌握代码的生成,这种方法目前又多了Python,Ruby这些动态语言可供 挑选.

但我还是习惯模板多一些.比方jsp,可以用Httpclient拜候jsp,得到返回 内容来生成文件.而xml格局的元数据, 可以通过Filter放入到Request大概 Session中.

不过,目前风行Velocity和Freemarker.二者之间可以用三局两胜制决出.

一,Freemarker网站上有一篇文章,列出了Freemarker语法上比Velocity优 胜的地方.

二,但目前的PM不可以这么狭隘的从纯技术角度看问题的了,Velocity有着 比Freemarker多得多的用户群体,比方AndroMDA, IntelliJ IDEA.

三,又但是,关于这种用XML格局定义的元数据,Freemarker有一个很少被提 到,但无匹的上风--内置了XML DOM的拜候语法.比方以下的元数据:

<table>
<column name="id"/>
<column name="name"/>
</table>
Freemarker可以这样列出table下全部column的name:
<#list table.* as column>
${column.@name}

比较Velocity要利用JDom的API,简单了不知多少倍.就这点,让Freemarker 胜出,因为Code Generate的历程中,实在要拜候太多的xml元数据.也是这点, 让我在jsp和freemarker间模棱两可.本来,因为生成的是代码,不是页面, freemarker markup-language化的上风并不存在.而jsp的好处是大家都懂,而 且有最好的IDE,扩大性还超强,可以做肆意的事情.

不过,说到底, 用什么做模板,其实不是件很重要的事情,这里只是写一下 group memoring,记录低决意的历程.


  以上是“<b>轻量级的代码生成策划挑选</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .