<%@ page contentType="text/html; charset=gb2312"%> J2EE应用中常见的反模式
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
J2EE应用中常见的反模式
     发布者: 发布时间:2006-09-04
J2EE应用中有一些常见的毛病和错误的观念,按照时下流行的说法,叫反模式。稍不注意,我们自己也会犯,所以大概整理一下,一个是备忘,也是供需要的朋友参考:
1- 无EJB不叫J2EE
EJB一直发展到今天的2.1仍然被广为诟病,它提供了很多时候我们并不需要的东西,而且我们在很多情况下一旦选用EJB就没有其他的方式不去使用那些笨重的功能。但是很多所谓范例让我们有一种错觉,好像不用EJB就不是J2EE应用。有一些折中的方案是使用Session Fa?ade模式,Entity Bean采用BMP + 本地接口,然后提供一层无状态的Session Bean,采用远程和本地接口,这样的设计模式,我想,多半是出于无奈。如今,甚至我们经常都能看到不使用EJB的言论,炒得很火的Spring则为这种完全不用EJB开发J2EE项目提供了实际的、强有力的佐证。

2- 过度分层
J2EE这个规范肤浅的来看,就是为我们定义了很多“层”,然后还有很多分工明确的“角色”,加上J2EE的蓝本应用程序就分了很多“层”,以至于大家都觉得J2EE的应用就应该是很多层的,其实不然,需要具体情况具体分析。

3- 频繁的往返调用
EJB的看似简单造成我们经常忽略可能在使用过程中出现的远程调用,比如有时候为了更新一条记录,每个字段都是远程的去set,大大增加了不必要的开销,于是我们意识到在调用中使用DTO是一个建议遵循的方案。

4- 过度使用有状态的Session Bean
一般来讲,一个Session Bean实例,如果它是有状态的,那么它只对某个固定的用户服务,如果是无状态的,则可以满足不同用户的调用。这有点类似(只是有点类似)一个类的静态方法和非静态方法的区别。我们在实际应用中,应该尽量避免使用有状态的Session Bean,除非特别必要。我们可以把状态保留在Session Bean之外,如Web容器的session对象或者我们自定义的类中,而不是完全依赖有状态的Session Bean去帮我们做。

5- 过度会话
Web容器的session对象是个好东西,用起来也很方便和直截了当,这造成了我们很多人对它的滥用,什么东西都往里面放。这有两个突出的问题,一个是资源浪费;另一个,万一Web服务器崩溃,那些本来需要持久化的数据就丢失了。我们需要考虑好,哪些数据本可以用request的,哪些数据又是需要持久化到数据库的,等等,不能一味依赖session。

6- 万能Servlet或者万能JSP
J2EE为我们提供了Web层丰富的技术选择,Servlet或者JSP都只是其中一种,虽然它很强大,但是也不应该由它一个来承担所有MVC三个部分的功能。现实中我们的Struts很好的规范了这个问题:Servlet负责调度,专门的Action负责处理逻辑,而JSP用于用户界面显示。JSP和Servlet本质上是同一个东西,只是从不同的角度来处理问题,它们各有所长,互为补充。
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
Resin服务器平台介绍
使用Hibernate的一个完整例子
浅谈心得体会 如何成为一个优秀的jsp程序员
介绍一种XML数据转换工具
使用浮点数和小数中的技巧和陷阱
搜索引擎之中文分词实现(java版)
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(6798)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(724)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(8834)
        
回复:J2EE应用中常见的反模式
现实中我们的Struts很好的规范了这个问题:Servlet负责调度,专门的Action负责处理逻辑,而JSP用于用户界面显示。JSP和Servlet本质上是同一个东西,只是从不同的角度来处理问题,它们各有所长,互为补充。 本人对EJB的看法是能不用尽可不用。
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号