|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
没有那个大公司会傻了吧唧用.net开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net不行,限制在window系统,又是捆绑,鄙视微软之!<Pstyle="TEXT-INDENT:2em">企业级JavaBeans(EJB)是J2EE平台中最庞大的手艺之一,因而一些开辟职员不肯意在他们的项目中部署EJB。<Pstyle="TEXT-INDENT:2em">本文面向那些仍然对是不是投进工夫和精神进修并在他们的项目中部署EJB手艺持张望立场的开辟职员。起首,我们先容了EJB的长处和弱点,然后,申明了什么时候你大概必要或不必要利用EJB。<Pstyle="TEXT-INDENT:2em">最初经由过程申明我对EJB毛病看法一些意见得出结论。<Pstyle="TEXT-INDENT:2em">长处<Pstyle="TEXT-INDENT:2em">标准:EJB是一项手艺标准的手艺。(这既是EJB的次要长处也是一个次要弱点。)EJB标准几近形貌了完成的一切方面,包含数据范例,组件性命周期,脚色分派和良多别的方面。<Pstyle="TEXT-INDENT:2em">与J2EE严密分离:J2EE平台中有一组完全的服务器手艺,包含EJB和别的十分有代价的手艺诸如servlets,JavaServer页,Java动静服务,J2EE毗连器系统布局,Java数据库毗连,Java认证与受权服务,Java事件API和JavaMail等。这使得J2EE和EJB成为一个很有吸引力的办理计划。<Pstyle="TEXT-INDENT:2em">可晋级性:只需你将年夜部分资本办理函数传到使用服务器,供给商就能够使用庞大的晋级算法。<Pstyle="TEXT-INDENT:2em">可会见资本办理体系:使用EJB容器,你能够取得不计其数行的代码来会见和办理资本,包含事件办理体系,平安办理体系和目次服务。没有EJB的话,你只能本人完成这些组件。<Pstyle="TEXT-INDENT:2em">弱点<Pstyle="TEXT-INDENT:2em">大批庞大的标准:关于形貌一个庞大散布式体系的标准来讲这是很一般的,可是并非内里的一切信息都必要编码,这使得标准成为一个很不便利的工具。<Pstyle="TEXT-INDENT:2em">复杂的文档:在入手下手开辟一个项目之前,你一般必要浏览1000多页的文档,这是部署EJB的很使人害怕的缘故原由之一。<Pstyle="TEXT-INDENT:2em">增添了开辟工夫:EJB办理计划比一般Java代码完成请求更多的工夫。调试EJB代码必要的工夫也要比调试一般Java代码长。次要缘故原由是由于你不克不及断定毛病是在你的代码中仍是在容器中。<Pstyle="TEXT-INDENT:2em">EJB代码更庞大:比方,为了完成一个会话bean,你必需编写三个类,一个登录bean,你必需编写四个类。增加一两个部署形貌符和一个最复杂的“Helloworld”使用就会天生10个文件而不是一个文件。<Pstyle="TEXT-INDENT:2em">反复计划的伤害:这是标准庞大性的成果。假如你没有很好的了解EJB的观点,你就不克不及无效地利用该手艺,并且你还大概把项目变得比实践必要的更庞大。<Pstyle="TEXT-INDENT:2em">标准改动:EJB是一项新兴手艺,你的代码潜伏地存在过期的风险,这就请求增添分外的事情和投进来使得它与新的EJB容器兼容。<Pstyle="TEXT-INDENT:2em">甚么时分你大概想要利用EJB<Pstyle="TEXT-INDENT:2em">假定你有一个利用数据库的复杂servletWeb使用。你利用JDBC从你的使用会见数据库。作为一个SQL查询的了局,你会失掉具有一些数据的了局集ResultSet,这些数据代表了你的营业对象。<Pstyle="TEXT-INDENT:2em">这类办法利用数据不是很便利。你必要创立一个Java类暗示一个数据库布局,你的代码大概以下所示:<Pstyle="TEXT-INDENT:2em">MyObjectobj=newMyObject();<Pstyle="TEXT-INDENT:2em">obj.setXXX(rs.getString("XXX"));<Pstyle="TEXT-INDENT:2em">obj.setYYY(rs.getString("YYY"));<Pstyle="TEXT-INDENT:2em">在将了局集换成对象暗示与前往后,你必要思索怎样将这个逻辑转移到MyObject中。为了将servlet从JDBC会见细节平分离出来和不在间接利用java.sql.*包中的类,你应当让该对象能够在数据库中找到本人,然后修正或删除它。<Pstyle="TEXT-INDENT:2em">如今又有别的一个成绩:怎样经由过程某些查询找到数据库中的一个对象?假如你必要经由过程主键找到它,那末你必要将主键传给类机关函数便可。假如你必要经由过程某些原则查找,这将必要良多公用静态办法。假如必要的话,你大概还必要撑持事件处置和滚回的办法。<Pstyle="TEXT-INDENT:2em">当你的使用程序取得普遍使用时,一般运转工夫百分比和可用性将变得非常主要,这时候你会必要复制,疾速对象耐久性,对象高速缓冲区,数据库毗连池,平安事件等等。<Pstyle="TEXT-INDENT:2em">一切这些成绩都能够由实体企业级JavaBeans办理。你不会再犯很多程序员已犯过的毛病。假如你的bean是一个容器办理耐久性bean,那末你只必要完成一两个接口,而不用思索必需会见的数据库。假如不克不及完整满意你的必要,也没有成绩,你可使用Bean办理耐久性(BMP)实体本人完成耐久性。<Pstyle="TEXT-INDENT:2em">在你的使用程序营业域中,对象不但保留数据,另有一些举动。这些举动代表营业逻辑。当你入手下手编写使用时,一切营业逻辑都寄存在servlet中,以是你的使用必要一些servlets的撑持。<Pstyle="TEXT-INDENT:2em">你能够选择是复制粘贴营业逻辑代码,仍是将它放在自力的类中。最初,大概有些用户请求在分歧的Web页面中与你的使用举行交互,你必要保留每一个用户哀求之间的会话信息。办理这个成绩的办法称为会话Bean,它封装了你的使用中的一切营业逻辑,它能够是有形态的或是无形态的。<Pstyle="TEXT-INDENT:2em">甚么时分你大概不想选择EJB<Pstyle="TEXT-INDENT:2em">EJB的确是一项很好的手艺,可是它并非一个通用办理计划。EJB供应的良多特征(像平安性、耐久性和事件撑持)并非每一个使用都必要。<Pstyle="TEXT-INDENT:2em">别的,在非散布式使用中你也大概不想利用EJB,由于这类程序速率大概比平安和事件处置更主要。因为EJB的散布式实质,为了便于在客户端和EJB组件(或服务器)之间举行通讯,数据必需先辈行某种处置(串行化)然后再举行反处置(串行数据并行化)。这招致了大批的开支,使得功能下落,这也是为何利用JVM(Java假造机)中的当地类大概更好些的缘故原由。<Pstyle="TEXT-INDENT:2em">关于EJB的几种毛病看法<Pstyle="TEXT-INDENT:2em">EJB是一项高贵的手艺:这类说法部分准确。但比来已公布了几个低价位或收费的使用服务,这些使用服务具有贸易服务器的一切功效。在一个年夜型企业使用项目中,使用服务器的消费只是全部项目开支中很小的一部分。<Pstyle="TEXT-INDENT:2em">假如利用CMPbeans,你就不必要SQL相干常识:这是不准确的。<Pstyle="TEXT-INDENT:2em">EJB使用便于在分歧的容器之间移植:这类概念部分准确。EJB代码只要在以可移植的体例编写时才干移植。会话beans和BMPbeans能够很简单的移植,可是移植CMPbeans必要大批的事情。<Pstyle="TEXT-INDENT:2em">实体beans事情速率迟缓:基础上是准确的。实体beans的确运转很慢,并且良多情形下,最好将它们转换成会话beans。<Pstyle="TEXT-INDENT:2em">结论关于你的项目在做出是不是利用EJB手艺决意之前,你必要了解你的使用的一切需求,它的演变远景和EJB的次要方针和缺点。
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。 |
|