在Spring+Hibernate框架下,用动态语言写商业逻辑类(上)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

如果羡慕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强大的String类也是很吸引我的地方,支持多行,可以把EL嵌入在String里,而不是用丑陋的scanf。

2.哪种动态语言?

Jython总是若断若续,气若游丝的样子,而且现在都只移植到Jython2.1,比Python慢了几拍,不是很信得过。

而Ruby唯一不好是暂时没有好的IDE(连那个收费的ruby-ide都好弱),如果没有好的IDE,可以抵消掉大部分语言本身的优势,真不能想像Ruby On Rails是用怎么个UltraEdit级的编辑器写出来的。

Groovy比起两位舶来品,有一个天然优势是和Java的语法非常相似,把Java代码copy到Groovy几乎不作什么改,团队的学习曲线比较低。

但它的IDEA插件同样没有完成,Eclipse的插件只有语法高亮,JSR-1版的离正式版还有段距离,而且JSR-2开发进度延后得比较厉害。

动态语言本身当然各有各的好,但现在选的是Java框架下嵌入哪种动态语言作为业务类。所以Python和Ruby强大的用户社群和已有项目不会有加分,而Groovy平滑的学习曲线和基本上一样的语法就显得比较吸引,毕竟团队里的成员大多不希望做一个项目里要同时handle两种语法差异较大的语言。

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航