Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 在Spring+Hibernate框架下,用动态语言写业务类
【标  题】:在Spring+Hibernate框架下,用动态语言写业务类
【关键字】:Spring+Hibernate
【来  源】:http://www.blogjava.net/calvin/archive/2005/08/18/10427.html

在Spring+Hibernate框架下,用动态语言写业务类

Your Ad Here

    如果羡慕Ruby On Rails可以用动态语言来编码,但又舍不得Spring、Hibernate这些Javaer深以为傲的框架,那么有一种折中的方案:
    仍然使用Spring+Hibernate框架,而用Groovy/Jython/JRuby来编写Controller类、Service类、DAO类,并把它们编译成普通的Java Class文件来使用。
    BuggyBean的blog里用Jython示范了这种方案。

 1.why 动态语言?
 现在的动态语言都已经很面向对象,和传统的用来写写外围脚本(测试,安装)的script语言已经不同,而且Groovy,Jython,JRuby写成的类除了动态载入外,都可以编译成静态的Java Class文件,所以已能很好的承担J2EE应用里业务类的角色了。

 动态语言有什么好处呢,请参看<Groovy写业务类、框架类的那一吨好处>

    2. 八卦:各种动态语言的Java实现
       Groovy
BeanShellJython(Python),JRuby(Ruby),Rhino(JavaScript),
      Jacl(TCL),Bistro(SmallTalk),Kawa(Lisp/Schema)

 3.哪种动态语言?
    Jython总是若断若续,气若游丝的样子,而且现在都才移植到Jython2.1,比Python2.4 慢了几拍,很信不过。

 JRuby呢? Dion Almaer在JRuby0.8.2发布时说:"The day JRuby gets up to Jython levels, and then C Ruby levels, will be a great day.",字面上JRuby比Jython还要不靠谱。
     Ruby还有一个不好是暂时没有好的IDE(连那个收费的ruby-ide都好弱),如果没有好的IDE,可以抵消掉大部分语言本身的优势,真不能想像Ruby On Rails是用怎么个UltraEdit级的编辑器写出来的。

   Groovy的弱势是1.0正式版还没有发行,用户社区还不大。

    因为现在选的是Java框架下嵌入哪种动态语言作为业务类。所以Python和Ruby的用户社群和大量的已有项目作用不是很大。而Groovy比起两位舶来品,
    1.作为私生子,嵌入性理所当然是最好的,两者的关系暧昧得不得了。
    2.另一个天然优势是能兼容Java的语法,把Java代码copy到Groovy几乎不作什么修改(only不支持throws定义语句和Inner Class),团队的学习曲线平滑。
    3.因为不是移植项目,语言升级时没有时间差,不用看移植人的脸色。

    so,我会选Groovy,等它的正式版出来之后。

Groovy写业务类、框架类的那一吨好处:【上一篇】
Groovy MOP实现mini-language 如传说中Java7.0的XML嵌入式语法 :【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • Director MX 2004中MIAW使用心得
  • 设计模式之工厂模式学习
  • IBM RS/6000 AIX操作系统的安装
  • /var文件系统满了,该怎么办?
  • 推荐:《WinX教程之我的实战》
  • 50种方法巧妙优化你的SQL Server数据库
  • 如何使用asp+ 动态创建页面元素
  • windows 系统调用.Windows索引服务.实列在Web访问索引服务
  • 微软雅黑字体的bug,可能不是我第一个发现的
  • Qt教程6--组装丰富的积木--窗口中的窗口
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.