JAVA网站制作之Web Beans(JSR-299):与标准向导者Gavin King的问答仓酷云
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。Seam站点上的WebBeans页面如许形貌WebBeans:“……一套针对JavaEE情况的服务,让使用程序开辟起来加倍复杂。WebBeans在已有的Java组件范例好比JavaBeans和企业JavaBeans之上,搭建了加强的性命周期和交互模子一层。作为针对传统JavaEE编程模子的增补,WebBeans服务供应了:
[*]改良有形态组件的性命周期,并绑定到界说优秀的高低文上,
[*]为依附注进供应范例平安的体例,
[*]经由过程事务关照机制举行交互,
[*]一个把拦阻器绑定到组件上更好的办法,并供应一个新型的拦阻器,也叫粉饰器(decorator),这对办理营业成绩加倍符合。”
今朝在公然草稿预览阶段中,WebBeans所会带来的普遍潜伏的影响让JEE社区的成员们有所悬念,而标准的向导者GavinKing也已公布将预览刻日延至2009年,以此来办理人们所忧虑的一部分成绩。InfoQ为此采访了King:
InfoQ:思索到Spring和WebBeans都为JavaEE供应了依附注进框架,我很想晓得你以为WebBeans比Spring最次要的上风在甚么中央?有来自SpringSource的人到场到这个专家组中吗?
WebBeans中的模子切实其实遭到了Spring、Guice和Seam的影响。可是,最最间接的影响来自于Seam的高低文形态办理模子和Guice的范例平安依附注进。Seam和Guice也影响了Spring的开展,好比Spring比来就增加了针对高低文bean和Guice作风的绑定范例的撑持。但是,WebBeans具有“成份明净”的上风,以是最初的了局只会是加倍洁净,加倍文雅,并且范例加倍平安。WebBeans还引进了很多立异性的头脑,好比粉饰器、原型、部署范例、范例平安事务/察看者绑定和拦阻器绑定注解,这些在其他办理计划内里是没有的。终极的了局就是更少的XML但更多的范例平安性。
SpringSource今朝其实不在JSR-299专家组中。InfoQ:粉饰器和拦阻器的区分是甚么?
每个你用粉饰器能够办理的成绩,你也能够用拦阻器来办理,但拦阻器长短范例平安的,处置营业逻辑的体例也不敷天然。粉饰器供应了可以感知到正在被挪用的办法的语义的拦阻体例,并且能使用到特定的Java范例上。换句话说,拦阻器从手艺上办理了像把买卖办理和平安从营业逻辑中解耦出来如许的成绩,而粉饰器是在营业的角度供应了相似的办理计划。InfoQ:为何WebBeans必要一个事务模子?
这是由于我们想促进一种松耦合和强范例的编码办法;这类理念是该标准的基本。可是除此以外,我们还试图编写出既有形态又松耦合的组件。因为必要办理缓存着的形态,有形态的组件大概会在Web高低文中呈现成绩,好比,产生回滚时很多使用城市出成绩,由于形态并没有和事件绑定起来。因为这些范例的成绩一般只产生在使用程序负载很重的情形下,以是常常十分难以测试。因而,事务模子供应了一种把持这些范例成绩的体例。InfoQ:WebBeans的事务模子与observer/observable形式有甚么区分?
WebBeans模子与Java的observer/observable形式的区分在于,察看者(observer)不必要晓得被察看者,由于这类依附在WebBeans高低文中其实不有用。WebBeans模子还撑持动静选择器及事务范例——一种事务范例有点像一个MOM主题,而动静选择器则像二进制范例。因而你能够以范例平安的体例在这一级别使用过滤。
我们仍在做一些这方面的事情——比方,IBM提出的一个成绩是以后草案中并没有撑持处置集群(cluster)的语义,因而,下一个草案也许将同意事务被发送到JMS主题或行列上,以供应一种文雅的体例将Java对象发送到一个行列。请拜见这个blog以取得更多信息。InfoQ:明显WebBeans与集成JSF和EJB极为相干。你们思索过别的集成用例吗?
WebBeans是一个依附注进框架。固然在某种意义上依附注进在手艺上并没甚么出格的;实践上DI框架所做的就是为对象之间的交互供应一其中枢。DI框架是如许一种中枢:不但能够供给用程序组件间交互利用,还能够供给用组件和基本举措措施间交互利用。JavaEE缺少把第三方框架集成进其情况的API,以是今朝你必要加一层像Spring或Seam如许的中枢。而WebBeans则供应了一种尺度的体例来做这件事,它是JavaEE的一部分。
我们正会合于四个年夜的用例,我想它们掩盖到了多半用例。首当其冲的是Web框架——应当很简单把WebBeans与别的Web框架相集成,我信任这一点。其次是营业流程办理(BusinessProcessManagement)引擎,好比JBPM或Oracle的BPM——它促使了分级办理模子的利用。第三是利用现有依附注进框架(好比Spring、Seam、Guice或其他DI机制)的人们必要可以把他们的现有代码与WebBeans相集成,第四是JAX-RS。InfoQ:WebBeans会对Seam3发生甚么影响?
Seam3的中心引擎将是WebBeans。然后我们将要移植全套模块,整合JSF、JBPM、Hibernate、Drools、Groovy、Wicket和GWT如许的手艺,大概办理罕见的挂念如平安、展示PDF、email、Excel、RSS等等,把他们都移植到WebBeans中枢上。我还在思索怎样撑持那些利用Seam专有依附注进的现有代码,是经由过程一个Seam2的集成层呢仍是在WebBeans上从头完成这一API。InfoQ:我没看各处理远程EJB的办法?有如许的用例吗?假如有,你们有甚么样的企图?
是的,我们订正大众草案必要办理的一个成绩就是为一切现有JavaEE资本范例供应WebBeans作风的注进,包含远程援用EJB,它已成为一个大众特征需求。InfoQ:关于JCP的一个广泛意见是专家组之间的相同十分坚苦。由于WebBeans超过良多标准,包含JSF和EJB,另有Servlets和通用注解,我十分想晓得,对您来讲这方面存在多年夜成绩,您又是怎样处置的。
这切实其实是一个成绩,我们也正在办理。我不能不说,当JCP在办理跨多个专家组的成绩时就会掉控。InfoQ:当WebBeans标准初次公布时,人们会商了良多它的通用性和它是不是应当成为JEE标准大概JSE7的一部分,以使它能和Swing/JavaFX一块利用,和用在其他DI框架可使用的中央。可是,标准依附EJB(大概最少是EJBLite),这限定了它的普遍使用性。您能分享一下这方面的意见吗,另有为何API至今还没有凌驾最后的职责局限?
我不确信假如WebBeans供应一个EJB的替换品是不是可行,但我以为这不是一个真实的限定。人们在SE情况中利用的是一种供应了EJBLite和WebBeans的集乐成能包的产物。不利用EJBLite而只用WebBeans对我来讲仿佛没成心义,由于利用如许一个完整产物的用户不能不构建本人的非尺度的事件办理情况、耐久化集成等等。集成后产物的范围实践上会比Spring如许的工具更小(可是比Guice要年夜),并且不必要良多设置。
固然,在社区中也存在一种心态:非感性地害怕任何与EJB有关的事变,不外坦白地说,假如想使用WebBeans,就不能不克制这类心思。InfoQ:当JSR初次提出时,IBM公然暗示了对JCP标准的挂念:
“我们正在忧虑JSR299的开展偏向,仿佛它已超出了集成JSF和EJB组件的假想,我们以为持续下往会招致其偏离JavaEE6。我们信任客户不会简单地接纳JavaEE6平台,由于又增加了一个组件模子界说。”
IBM的挂念对标准的开展偏向有多年夜影响?
良多JCP成员,包含IBM,品评WebBeans初期草稿,以为它是一种新的“组件模子”。因而在公然草稿中,我们从头把其功效定位成一套用于现存EE组件范例的服务。这类做法部分化决了品评成绩,可是很分明不敷,因而我们延伸了299的公然审校工夫,以对标准做更多修正。
比来我们消费了良多工夫与IBM和其他EE厂商一同事情以办理他们的挂念。IBM方才到场了299专家组,正在努力于订正公然草稿。今朝在次要EE厂商已告竣了共鸣——299应当包括在EE6中,只需在一月尾公布的修正公然草稿中打消了他们的挂念。EE平台终极将具有一种尺度的、先辈的依附办理计划。更多WebBeans信息可查阅参考指南。首个alpha版能够从Seam网站下载。
检察英文原文:WebBeans(JSR-299):Q&AwithSpecificationLeadGavinKing
本文出自:http://www.infoq.com/cn/news/2009/01/webbeansqa
你通过从书的数量和开发周期及运行速度来证明:net网页编程和ruby要比java简单。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 Java 编程语言的风格十分接近C、C++语言。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 是一种突破用户端机器环境和CPU Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 是一种语言,用以产生「小应用程序(Applet(s)) 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
页:
[1]