您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > Grails-Java开发人员的圣杯
JAVA开发人员的圣杯Java的困惑•对于在Java领域中开发的web程序员来说,一直梦想有个无须太多配置的Web应用框架,能够帮助我们直接来完成业务逻辑的处理,而无须了解太多堆积如山的配置文件。Grails中文用户组•达到了无可比拟的成熟度及工业支持•应用服务器稳定且可扩展的管理环境•先进的部署能力•成熟的安全管理,以及web服务•丰富的开源库JAVA开发人员的痛苦•大量的时间浪费在配置、构建和部署上动态语言的兴起Grails中文用户组•动态语言(ruby和Python)借助RubyonRails、Django逐渐流行ConventionOverConfiguration脚本语言的缺陷Grails中文用户组缺少面向对象的特点存在性能、可伸缩性能、以及集成等问题不适应大型项目中现在这些缺点都一一得到了解决。而且动态虚拟机(VM)也越来越成熟。互惠互利Grails中文用户组脚本语言不会代替系统编程语言,它们是互补的•系统语言是强类型的、脚本语言是弱类型的•脚本语言具有更好的表示能力,能够提供更高的抽象等级。•脚本语言用于把应用程序集成起来,而不是实现复杂的数据结构和算法AreYouGroovyGrails中文用户组是一种创新语言,能够自然地通过相同虚拟机的Java环境进行交互完全面向对象的使用简练、易于理解的类似JAVA的语法与JAVA无缝集,能最大限度的混合JAVA代码,是目前增强Java平台的唯一脚本语言支持元编程,内置Map、List方法、类ClosureGroovyTravelGrails中文用户组“HelloGroovy!”publicclassHelloGroovy{publicstaticvoidmain(Stringargs[]){System.out.println(“HelloGroovy”);}}GroovyTravelGrails中文用户组{print8}for(inti=0;i9;++i){System.out.print(8);}9.downto(5){print8}for(inti=9;i4;--i){System.out.print(8);}[Sunday,Saturday,Wednesday].each{day-printlnTodayis${day}}GroovyTravelGrails中文用户组=[100,888,783]for(iinlist){printi}[Sunday,Saturday,Wednesday].each{day-printlnTodayis${day}}Listlist=newArrayList();list.add(newInteger(100));list.add(newInteger(888));list.add(newInteger(783));For(inti=0;ilist.size();i++){System.out.print(list.get(i))}GroovyClosureGrails中文用户组•是一种可执行代码块的方法•对象,可以像方法一样传递•可以在需要的时候执行•可以访问属性信息(可以使用并修改其作用域的所有变量值)GroovyClosureGrails中文用户组={param=println“Hello$praam”}clos.all(‘Sonic’)clos(‘railscn.org’)结果为:HelloSonicHellorailscn.orgGroovyClassGrails中文用户组{defnamedefolddefcreate(){}defdelete(id){}}Grails之旅Grails中文用户组年夏天,一小撮GroovyFans组织起来使用Groovy开发了一个动态框架,并按照RubyonRails将其命名为GroovyonRailsGrails的目标是超越其他语言在web领域的框架。Grails之旅Grails中文用户组提供简单的接口,同时保持调用底层JAVA框架的灵活性及特性3.改进JAVA平台已有的缺点Grails之旅Grails中文用户组•Grails基于开源技术,SpringHibernate和SiteMesh•“规约编程”(CodingByConvention)•隐藏了这些框架的大多数底层复杂性Grails之旅Grails中文用户组由视图(Views--gsp)和控制器(Controller)组成的Web层2.由域类(Domainmodel)和服务(Services)组成的业务逻辑层3.由域类(Domainmodel)和数据源(DataSource)组成的持久层Grails之旅DomainmodelGrails中文用户组•表名=modelname•字段名=属性名称•熟悉“maxRunners“对应字段max_runners“•字段id是整个表的主键,是自增长的。•主表Race,从表外键race_idDomainDataBaseclassBookmark{URLurlStringtitleStringnotesDatedateCreated}Idurltitlenotesdate_created12Grails之旅Grails中文用户组{defscaffold=Bookmark}//Bookmark=Bookmark.classclassBookmark{…..staticconstraints={url(url:true)title(blank:false)}}Grails之旅Grails中文用户组一对多、多对一、一对一、多对多ControllerclassBookmark{URLurlStringtitleStringnotesDatedateCreatedstatichasMany=[tags:Tag]}classTag{staticbelongsTo=BookmarkBookmarkbookmarkStringname}Grails之旅Grails中文用户组规约里,URL的每个部分都扮演着重要的角色,这种规约的路线把我们从编写URL、控制器和视图的外部绑定配置文件中解放出来了Grails之旅Grails中文用户组没有很大区别,只是gsp里面用grails的标签。如Gpath表达式、Bean符号和可重载的操作符、对于正则表达式和GString、Map、List的支持。Grails的学习之路Grails中文用户组他们最大区别在于平台策略:Groovy尽量和Java保持一致性,不提供自己的类库,直接使用Java类库,而JRuby目标在跨多个运行平台的一致性,能够运行在操作系统Ruby解析器,JVM和.net平台上面。Grails的一些误解Grails中文用户组还不够成熟我想不断增长的商业网站数量就是最好的答案了。同时,Grails也是基于HIbernate、Spring和SiteMesh这些成熟完善的框架构建的,更不用说作为万年常青树的JavaJDK了。Groovy项目都已经有超过三年的历史了。Grails使用的是一门解释型语言(Groovy)Groovy在运行时自动编译成Java虚拟机字节码,它绝绝对对彻彻底底不是一门解释型语言。Grails是否只是Rails的一个克隆产物RubyonRails引入了不少非常好的主意,并将它们合为一体。Grails将其中的一部分应用到了Groovy/Java的世界中,但加入了许多Ruby中并不存在的特性和概念,所有这些东西都是以一种对Groovy和Java程序员有意义的方式展现给他们的。Grails的一些误解Grails中文用户组之后,谁还要Grails呢?”:这个问题很有代表性,也是对“Grails到底是什么”最大的误解之一的根本所在。JRubyonRails是让Rails运行在像GlassFish这样的JavaEE容器上非常优秀的方式之一,就是这样而已。但Grails的目标却大为迥异,它并不是Rails在Groovy语言上的一个移植版本,而是将业界内最为强悍的组件(比如说Spring、Hibernate、Quartz、Compass和SiteMesh等)以最佳方式组合起来的一个实践,并通过采纳无配置规约(Convention-over-Configuration,CoC)使它们符合“不重复(Don'tRepeatYourself,DRY)”原则。我们并不是在重造轮子,而且由于Grails内核的绝大部分都是以Java编写的,它也显得更加强壮和稳定。事实上,从内核角度看Grails是一个SpringMVC应用,可以被部署到所有的主流容器之上,不仅仅只有Glasshfish,还有大型商业容器,比如说WebLogic、WebSphere和OracleAS。Grails比Rails更适用于企业应用Grails中文用户组原因很多,最显著的两个原因就是Spring和Hibernate。到目前为止,有不计其数的组织在采用Spring和HIbernate,他们都有既有的Spring上下文环境,以及已经构造好的Hibernate领域对象等。Grails的目的就是为了让它和这些框架尽可能无缝地整合起来。因此,你可以把一个用Java编写的Hibernate领域模型及其对应的配置文件直接扔进Grails应用中,然后就可以使用动态的查询方法,并且直接使用GORM了。Rails几乎是按照和EJB2一样的方式设计的,也就是说,你在扩展ActiveController和ActiveRecord等框架对象时,你也就被绑定在了这套框架上。在Rails里面根本就不存在领域模型的说法,Rails的模型就是数据库表。这当然是一件好事了,但在企业内部,同一个领域模型可能会在许多不同的应用中服用,比如说桌面应用和Web应用。在Java里,这实际上是非常成熟完善的,通过把类对象及相应映射文件打包成一个JAR文件即可。一起学习Grails中文用户组
本文标题:Grails-Java开发人员的圣杯
链接地址:https://www.777doc.com/doc-1013047 .html