开辟J2EE企业级操纵程序办法[Java编程]
本文“开辟J2EE企业级操纵程序办法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
J2EE,作为开辟mission-critical的企业级利用的一整套标准的整合平台.其标准之多、内容之广,从而给开辟J2EE利用带来了很多“麻烦”.比方,为实现内容的RDBMS存储,我们大概的办法有JDBC、Entity Beans、JDO、O/R Mapping工具(TopLink、Hibernate)、XML-DBMS、JAXB等办法(此中一些办法不是J2EE标准所包含的).因此,为实现J2EE各层(至少有表示层、掌握层、商业逻辑层等3层)以及层与层之间的耦合,J2EE系统架构师需求考虑的问题会很多.加上,J2EE本身的快速发展,给架构、开辟具有产业强度的J2EE利用带来一些难题.
同时,软件开辟技术历来就没有“银弹”,所以J2EE技术也不是万能的.但是,假如我们在结合具体商业需求的底子上,公道的利用好J2EE技术,后来果不可思议.本文摸索从自己以往的项目经验来探究开辟J2EE利用应当遵守的几点准测动手,以起到举一反三的作用.假如能到达这一点要求,则万分冲动.
本文结合JBoss 3.2.1下的J2EE利用开辟为例展开阐述.
1,结合商业需求挑选公道的架构
假如脱离商业需求,而单独的谈论技术本身的上风是不够的.各项技术都有产生的特定后台,此中很多都是来自产业需求而触动的.普通而言,企业信息系统(EIS)都要求自己安定、安全、坚固、高效、便于保护.同时,各个企业信息系统都有自己独特的要求,大概有些时刻需求考虑与原有遗留系统的集成,所以理解各个企业信息系统具体的商业需求关于整个系统的架构显得很关键.
比方,假如待开辟的J2EE利用系统中利用到的数据大部份来自于外在数据源;而这些数据大概是通过JDBC直接从外在数据源导入到待开辟的J2EE系统的Database中.关于这种情形,假如在开辟历程中,仅仅利用JDBC来操作数据库,关于小强度(并发拜候用户少、数据流量少)的情形,明显是对比符合的;但假如,并发拜候用户较多、数据流量大,对Database层利用较为频繁的情形,则显得有些力不从心.因此,关于这种需求,我们可以考虑采取Entity Beans with Caches.打个比方,在JBoss 3.2.1中关于Entity Beans的Cache战略有多种,这时可以考虑利用,,即“Standard CMP 2.x EntityBean”,方法并采取“D”范例的commit-option来保证Entity Beans的内容与数据源的同步,并使得系统的性能得到大大改进(同直接利用JDBC相比).此中,可以将一些Entity Beans设置为read-only,以改进性能.
当然,在这里也可以采取其他一些O/R Mapping技术,比方TopLink.
再比方,考虑这样一种情形:假如待开辟的企业信息系统利用到的数据都是由系统本身生成和操作的,则倡议采取:CMP Entity Beans技术.Entity Beans给大家的印象很坏,这大概与EJB 1.1给大家留下的坏映象有关吧.但是,EJB 2.0(大概说2.1)得到了很大的改进,Local Interfaces、CMR、Read-Only、Session Façade情势给Entity Beans注入了朝气.当然,并发用户多、数据流量很大时才会表现出利用Entity Beans的上风.此中,有一点很关键:要注重Entity Beans技术的性能调优,各个利用服务器都有自己的一套性能调优筹划.关于JBoss 3.2.1,配置文件standardjboss.xml供应了Entity Beans技术调优的进口.比方,Bean Lock战略的公道利用关于Entity Beans的调优就显得很重要.这样使得,我们可以越发关注于系统的商业逻辑,而不只是底层的Database(EJB调优处于EJB Container中,因此我们处在J2EE性能的高端,而不是底端,即Database层.同时,Database层的调优使得J2EE系统的数据库移植性大打折扣.).
简而言之,要结合各个系统的特定需求和情况给出具体的技术架构筹划,而不能孤独的阐述技术本身的好坏.
2,Framework的公道选用
计划情势在J2EE利用系统中扮演侧重要的角色.因此,有一个问题摆在大家眼前,是自己来实现具体的计划情势,还是借助于Third-party Framework.假如贵公司不大,大概说公司不想在J2EE底子利用Framework投入很多精神,选用现有的较为成熟的、安定、与现有J2EE Specification兼容的技术框架会对比明智.
普通而言,Framework本身,大概说J2EE平台本身都是实现并优化了具体的计划情势、法则,比方业务代理、Service Locator(包含Web Tier和EJB Tier各自的服务定位器,起到统一管理有限资源、Cache相关资源的作用,便于系统移植)、Front Controller、DAO等等.现有的J2EE Framework对比丰富.比方:
Struts: 关于实现了Model 2范例的Framework,关于目前以及将来(随着JSF标准、技术的成熟),选用她是一种明智之举.目前,Struts已经发展到1.1版本.其内涵的MVC主线、对后端数据操作方法没有限定、调集了Apache Jakarta项目组的优异相关项目的精华,可谓是开辟J2EE利用的佳品.同时,关于具有.NET Web Forms功效的下一代J2EE平台技术JSF而言,Struts本身可考虑到与JSF的兼容和集成性.比方,通过JSP显现表示层、Servlet显现掌握层、EJB显现数据存储层.各层之间,可以通过值对象、HTTP相关对象来通讯,实现J2EE相关技术的完善利用.
Log4j: 我想关于习惯采取“System.out.println(“”);”的读者而言,Log4j是大家的福音.固然Java 2 Standard Edition也具有java.util.logging包来保证日记的输出,但Log4j的简单、高效、机动已经成了很多项目的挑选.日记,在某种程度上可以磨练系统的安定性、精确性,所以采取可配置的Log4j(目前,Log4j已经考虑到了与java.util.logging包的兼容性)是不会错的.比方,JBoss 3.2.1本身就是借助于Log4j来管理日记的.
realMethods: 大概有些读者还不知道这一款杀手锏.那好,这里就扼要作一介绍.realMethods是一开辟J2EE利用的Framework,她差别于Struts(主要在于实现Model 2,J2EE利用前端);realMethods关于J2EE利用的各个层面都有细致、高效的支持.同时,realMethods从前还是商用软件,目前已经成为了Open Source的产品,因此目前可以参看其全部源代码.
BC4J: Oracle公司推出的用于Java的商业组件.其内容和外在的特点和上风,不言而寓.
当然,近似的Framework很多很多.作为开辟J2EE利用的团队而言,我们需求对各种Framework加以挑选,挑选合适项目需求、团队、公司发展方向的框架.
普通情形下,待开辟的目标产品不宜采取过量的Framework.其一,J2EE各个技术发展很快,过量的Framework使得系统的后续进级、保护不利;其二,可以鉴戒此中的好的一面,比方研究realMethods实现的呼应的计划情势,并改革她以合适我们的项目需求;其三,Framework本身会有变更,假如选用过量,会给开辟团队加重负担,从而不利于项目管理.
有挑选的利用现有的成熟Framework能晋升大家的开辟效率、开辟水平.
3,开辟情势的挑选
开辟J2EE利用要求目标开辟人员可以掌握此中的各种技术.但是,实际情形不是这样.作为一个团队,每个人都有自己差别的技术上风、爱好以及悟性.同时,J2EE本身需求表现社会分工.普通情形下,我们的开辟团队不会有Specification所要求的各个开辟角色.实际常常只有3种(也大概是两种):美工、JSP程序员、EJB程序员.面对这种分工,团队更要注重沟通、交流,注重代码的一致性.
普通情形下,团队要尽大概采取版本掌握工具管理代码、尽大概做到每天都有一个完好的运行版本.经过一段时间,团队城市适应这种开辟情势.此中,版本掌握工具一定要利用,便于代码的管理、掌握和备份.这此中会牵扯到很多层面.比方,开辟工具的挑选要考虑到版本掌握工具的利用、建模工具的公道利用有助于团队有效的沟通和交流.
基于现有的开辟情势,个人认为这样3套筹划不错.第一,采取Together作为建模工具、采取JBuilder作为IDE工具、采取VSS(大概CVS)作为版本掌握工具、采取JBoss作为开辟J2EE利用开辟阶段的服务器.第二,采取WebSphere Studio整套工具.第三,采取Eclipse(大概JCreator)、Ant、XDoclets作为开辟工具.
当然,手工完成J2EE利用的编写、编译、打包、布置、测试更能使开辟者理解各个开辟阶段的具体细节.但本人认为,只要开辟者有这种关注具体细节的态度,选勤奋效强盛的建模、开辟工具是明智的.开辟工具不能提高开辟人员的开辟技术,但是她可以指导开辟人员精确的开辟方向.比方,JBuidler 9 Enterprise供应的EJB精灵具有的“Struts + EJB + Session Façade + Value Object”等功效显现了业界遍及利用的J2EE构架方法.
4,注重各个阶段的测试工作
测试工作常常是很多项目经理轻忽,不肯意去耗费时间、费用的内容,因为那样会增添项目的本钱.但是,他们轻忽了,项目的完成质量常常对项目的本钱有很大的关系.比方,假如软件质量很差,并没有阅历测试阶段,后来期布置、运行所带来的费用会远远超越前期的费用.
测试是分阶段的.单元测试,比方借助于JUnit,来保证功效精确等内容.集成测试,来保证系统没有内存泄露等内容.此中,Optimizeite Suite Enterprise关于完成Profiler、Code Coverage、Thread Debugger等内容很有帮忙.我记得,我写的一个Swing桌面利用存在内容泄露,但是想了很多办法都没有办理问题.后来,采取Profiler得到了答案.因此,目前开辟利用,我们很多时刻都采取Optimizeite Suite Enterprise作为测试工具.特别是,在做集成测试历程中,查抄系统的内存泄露、性能很有帮忙.
测试是分范例的.压力测试、性能测试.就目前对支持J2EE利用的测试而言,并没有很好的测试工具.但是,普通情形下,借助于Rational Robot也可以获得不错的效果.
当然,成功开辟J2EE利用的因素有很多.比方,Entity Beans的成功利用很大程度上与底层Database的计划有关系(假如表构造计划计划的不公道,将招致Entity Beans性能的急剧下降);若何最大化发掘、晋升团队各个成员的J2EE技术.等等这些,计划面很广.
以上是“开辟J2EE企业级操纵程序办法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |