帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
开发J2EE应用应遵循的几点原则
作者:佚名 发布时间:2005-04-02 来源:不详
 
    J2EE,作为开发mi
内容广,从而给开发J2EE应
能的方法有JDBC、Entity B
、JAXB等方法(其中一些方
层、控制层、商业逻辑层等
很多。加上,J2EE本身的快
ssion-critical的企业级应用的
用带来了很多“麻烦”。比如,
eans、JDO、O/R Mapping工具(
法不是J2EE规范所包含的)。因
3层)以及层与层之间的耦合,J
速发展,给架构、开发具有工业
一整套规范的整合平台,规范多、
为实现内容的RDBMS存储,我们可
TopLink、Hibernate)、XML-DBMS
此,为实现J2EE各层(至少有表示
2EE系统架构师需要考虑的问题会
强度的J2EE应用带来一些难题。
    同时,软件开发技
我们在结合具体商业需求的
人以往的项目经验入手,来
用。本文结合JBoss 3.2.1
术从来就没有“银弹”,所以J2
基础上,合理的应用好J2EE技术
探讨开发J2EE应用时应该遵循的
下的J2EE应用开发为例展开论述
EE技术也不是万能的。但是,如果
,其结果可想而知。本文试图从本
几点准则,希望起到抛砖引玉的作

    1.结合商业需求选择合理的架构                                           
    如果脱离商业需求
定背景,其中很多都是来自
稳定、安全、可靠、高效、
些时候需要考虑与原有遗留
系统的架构显得很关键。
,而单独的讨论技术本身的优势
工业需求而触动的。一般而言,
便于维护。同时,各个企业信息
系统的集成,所以了解各个企业

是不够的。各项技术都有产生的特
企业信息系统(EIS)都要求自己
系统都有自己独特的要求,可能有
信息系统具体的商业需求对于整个

    比如,如果待开发的J2EE应用系
数据可能是通过JDBC直接从外在数据源导
,如果在开发过程中,仅仅使用JDBC来操
少)的情形,显然是比较合适的;但如果
用较为频繁的情形,则显得有些力不从心
Beans with Caches。打个比方,在JBoss
时可以考虑使用,,即“Standard CMP 2
commit-option来保证Entity Beans的内
(同直接使用JDBC相比)。其中,可以将
当然,在这里也可以采用其他一些O/R Ma
统中使用到的数据大部分来自于外在数据源;而这些
入到待开发的J2EE系统的Database中。对于这种情形
作数据库,对于小强度(并发访问用户少、数据流量
,并发访问用户较多、数据流量大,对Database层使
。因此,对于这种需求,我们可以考虑采用Entity
3.2.1中对于Entity Beans的Cache策略有多种,这
.x EntityBean”,方式并采用“D”类型的
容与数据源的同步,并使得系统的性能得到大大改善
一些Entity Beans设置为read-only,以改善性能。
pping技术,比如TopLink。
    再比如,考虑这样一种情形:如
身生成和操作的,则建议采用:CMP Enti
可能与EJB 1.1给大家留下的坏映象有关
Local Interfaces、CMR、Read-Only、Se
,并发用户多、数据流量很大时才会体现
要注重Entity Beans技术的性能调优,各
JBoss 3.2.1,配置文件standardjboss.x
Bean Lock策略的合理使用对于Entity Be
关注于系统的商业逻辑,而不只是底层的
处在J2EE性能的高端,而不是底端,即Da
数据库移植性大打折扣。)。
果待开发的企业信息系统使用到的数据都是由系统本
ty Beans技术。Entity Beans给大家的印象很坏,这
吧。但是,EJB 2.0(或者说2.1)得到了很大的改善,
ssion Fa?ade模式给Entity Beans注入了活力。当然
出使用Entity Beans的优势。其中,有一点很关键:
个应用服务器都有自己的一套性能调优方案。对于
ml提供了Entity Beans技术调优的入口。比如,
ans的调优就显得很重要。这样使得,我们可以更加
Database(EJB调优处于EJB Container中,因此我们
tabase层。同时,Database层的调优使得J2EE系统的

    简而言之,要结合
的论述技术本身的好坏。
各个系统的特定需求和状况给出

具体的技术架构方案,而不能孤单

    2.Framework的合理选用                                         
    设计模式在J2EE应用系统中扮演
自己来实现具体的设计模式,还是借助于
公司不想在J2EE基础应用Framework投入
J2EE Specification兼容的技术框架会比
着重要的角色。因此,有一个问题摆在大家面前,是
Third-party Framework。如果贵公司不大,或者说
很多精力,选用现有的较为成熟的、稳定、与现有
较明智。
    一般而言,Framew
、规则,比如业务代理、Se
到统一管理有限资源、Cach
等。现有的J2EE Framework
ork本身,或者说J2EE平台本身
rvice Locator(包括Web Tier
e相关资源的作用,便于系统移
比较丰富。比如:
都是实现并优化了具体的设计模式
和EJB Tier各自的服务定位器,起
植)、Front Controller、DAO等

    Struts: 对于实现
技术的成熟),选用她是一
、对后端数据操作方式没有
是开发J2EE应用的佳品。同
,Struts本身可考虑到与JS
层、EJB呈现数据存储层。
技术的完美应用。
了Model 2类型的Framework,对
种明智之举。目前,Struts已经
限定、集合了Apache Jakarta项
时,对于具有.NET Web Forms功
F的兼容和集成性。比如,通过J
各层之间,可以通过值对象、HT

于现在以及将来(随着JSF规范、
发展到1.1版本。其内在的MVC主线
目组的优秀相关项目的精华,可谓
能的下一代J2EE平台技术JSF而言
SP呈现表示层、Servlet呈现控制
TP相关对象来通讯,实现J2EE相关

    Log4j: 我想对于
家的福音。尽管Java 2 Sta
Log4j的简单、高效、灵活
定性、正确性,所以采用可
的兼容性)是不会错的。比
习惯采用“System.out.println
ndard Edition也具备java.util
已经成了很多项目的选择。日志
配置的Log4j(目前,Log4j已经
如,JBoss 3.2.1本身就是借助
(“”);”的读者而言,Log4j是大
.logging包来保证日志的输出,但
,在某种程度上可以考验系统的稳
考虑到了与java.util.logging包
于Log4j来管理日志的。
    realMethods: 可能有些读者还
realMethods是一开发J2EE应用的Framewo
用前端);realMethods对于J2EE应用的各
以前还是商用软件,现在已经成为了Open
不知道这一款杀手锏。那好,这里就简要作一介绍。
rk,她不同于Struts(主要在于实现Model 2,J2EE应
个层面都有详尽、高效的支持。同时,realMethods
Source的产品,因此现在可以参看其全部源代码。
    BC4J: Oracle公司推出的用于Ja
喻。
va的商业组件。其内容和外在的特点和优势,不言而

    当然,类似的Fram
Framework加以筛选,选择
ework很多很多。作为开发J2EE
适合项目需求、团队、公司发展
应用的团队而言,我们需要对各种
方向的框架。
    一般情况下,待开
展很快,过多的Framework
,比如研究realMethods实
Framework本身会有变动,
选择的使用现有的成熟Fram
发的目标产品不宜采用过多的Fr
使得系统的后续升级、维护不利
现的相应的设计模式,并改造她
如果选用过多,会给开发团队加
ework能提升大家的开发效率、
amework。其一,J2EE各个技术发
;其二,可以借鉴其中的好的一面
以适合我们的项目需求;其三,
重负担,从而不利于项目管理。有
开发水平。
    3,开发模式的选择                                                       
    开发J2EE应用要求目标开发人员
。作为一个团队,每个人都有自己不同的
社会分工。一般情况下,我们的开发团队
往往只有3种(也可能是两种):美工、J
重沟通、交流,注重代码的一致性。
能够掌握其中的各种技术。但是,现实情况不是这样
技能优势、兴趣以及悟性。同时,J2EE本身需要体现
不会有Specification所要求的各个开发角色。现实
SP程序员、EJB程序员。面对这种分工,团队更要注

    一般情况下,团队
运行版本。经过一段时间,
于代码的管理、控制和备份
控制工具的使用、建模工具
要尽量采用版本控制工具管理代
团队都会适应这种开发模式。其
。这其中会牵扯到很多层面。比
的合理使用有助于团队有效的沟
码、尽量做到每天都有一个完整的
中,版本控制工具一定要使用,便
如,开发工具的选择要考虑到版本
通和交流。
    基于现有的开发模
具、采用JBuilder作为IDE
J2EE应用开发阶段的服务器
者JCreator)、Ant、XDocle
式,个人认为这样3套方案不错
工具、采用VSS(或者CVS)作为版
。第二,采用WebSphere Studio
ts作为开发工具。
。第一,采用Together作为建模工
本控制工具、采用JBoss作为开发
整套工具。第三,采用Eclipse(或

    当然,手工完成J2EE应用的编写
发阶段的具体细节。但本人认为,只要开
模、开发工具是明智的。开发工具不能提
确的开发方向。比如,JBuidler 9 Enterp
Session Fa?ade + Value Object”等功
、编译、打包、部署、测试更能使开发者理解各个开
发者有这种关注具体细节的态度,选用功能强大的建
高开发人员的开发技能,但是她能够引导开发人员正
rise提供的EJB精灵具有的“Struts + EJB +
能呈现了业界广泛应用的J2EE构架方式。
    4,注重各个阶段的测试工作                                               
    测试工作往往是很
加项目的成本。但是,他们
如果软件质量很差,并没有
费用。
多项目经理忽视,不愿意去花费
忽视了,项目的完成质量往往对
经历测试阶段,其后期部署、运

时间、费用的内容,因为那样会增
项目的成本有很大的关系。比如,
行所带来的费用会远远超过前期的

    测试是分阶段的。单元测试,比
,来保证系统没有内存泄漏等内容。其中
、Code Coverage、Thread Debugger等内
在内容泄漏,但是想了很多办法都没有解
在开发应用,我们很多时候都采用Optimi
做集成测试过程中,检查系统的内存泄漏
如借助于JUnit,来保证功能正确等内容。集成测试
,Optimizeite Suite Enterprise对于完成Profiler
容很有帮助。我记得,我写的一个Swing桌面应用存
决问题。后来,采用Profiler获得了答案。因此,现
zeite Suite Enterprise作为测试工具。尤其是,在
、性能很有帮助。
    测试是分类型的。
很好的测试工具。但是,一
压力测试、性能测试。就目前对
般情况下,借助于Rational Rob
支持J2EE应用的测试而言,并没有
ot也能够取得不错的效果。
    当然,成功开发J2
与底层Database的设计有关
剧下降);如何最大化挖掘
EE应用的因素有很多。比如,En
系(如果表结构设计设计的不合
、提升团队各个成员的J2EE技能
tity Beans的成功应用很大程度上
理,将导致Entity Beans性能的急
。等等这些,设计面很广。

 
 
 
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·开发第一个分布式的j2ee应用  (2005-04-02)
 ·J2EE开发平台  (2005-04-02)
 ·J2EE 组件开发:会话EJB  (2005-04-02)
 ·J2EE平台架构上开发CRM的技术过程  (2005-04-02)
 ·如何搭建J2EE开发环境  (2005-04-02)
 ·J2EE项目中如何组建开发团队  (2005-04-02)
 ·J2EE开发n层应用  (2005-04-02)
 ·开发完整J2EE解决方案的八个步骤  (2005-04-02)
 ·J2EE平台架构上开发CRM的技术过程  (2005-04-02)
 ·帝国开发再次改版,希望您喜欢!  (2005-03-20)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统