- 浏览: 491459 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (234)
- aom学习 (7)
- 2007 (19)
- Java基础 (58)
- spring (7)
- linux (4)
- VMware (3)
- 网络 (3)
- 开发工具类 (14)
- webservices (2)
- 其他 (14)
- database (16)
- hibernate (8)
- jsp_html (14)
- jbpm (5)
- jquery (1)
- 办公软件 (6)
- struts2(webwork) (6)
- web服务器 (2)
- 项目管理 (7)
- 编程规范 (1)
- ps (2)
- JAVA工具类API (4)
- sun_java1.6 (6)
- 金融ISO8583 (1)
- SFTP (1)
- android (1)
- Linux_ftp_命令行下下载文件get与上传文件put的命令应用 (1)
- 公钥+私钥 (1)
- jvm (1)
最新评论
-
fyw2011_huawei:
有没有办法让谷歌也实现该功能? 因为在谷歌上调试时windo ...
window之createPopup方法 -
技术求:
好,flush 时才是execute
浅谈Hibernate的flush机制 -
xyzc2011:
言简意赅
公钥+私钥 -
smith789:
...
Windows 不能在 本地计算机 启动 OracleDBConsoleorcl -
zengshaotao:
肯定,因为要用到
jquery.js与自己的扩展的.js在导入时有先后顺序
初学者如何开发出一个高质量的J2EE系统
板桥里人 http://www.jdon.com 2005/06/20
J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各种概念,本文章试图从一种容易理解的角度对这些概念向初学者进行解释,以便掌握学习J2EE学习方向。
首先我们需要知道Java和J2EE是两个不同概念,Java不只是指一种语言,已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种软件系统的流派,当然目前主要是.NET和Java两大主流体系。
J2EE可以说指Java在数据库信息系统上实现,数据库信息系统从早期的dBase、到Delphi/VB等C/S结构,发展到B/S(Browser浏览器/Server服务器)结构,而J2EE主要是指B/S结构的实现。
J2EE又是一种框架和标准,框架类似API、库的概念,但是要超出它们。如果需要详细了解框架,可先从 设计模式 开始学习。
J2EE是一个虚的大的概念,J2EE标准主要有三种子技术标准:WEB技术、EJB技术和JMS,谈到J2EE应该说最终要落实到这三个子概念上。
这三种技术的每个技术在应用时都涉及两个部分:容器部分和应用部分,Web容器也是指Jsp/Servlet容器,你如果要开发一个Web应用,无论是编译或运行,都必须要有Jsp/Servlet库或API支持(除了JDK/J2SE以外)。
Web技术中除了Jsp/Servlet技术外,还需要JavaBeans或Java Class实现一些功能或者包装携带数据,所以Web技术最初裸体简称为Jsp/Servlet+JavaBeans系统。
谈到JavaBeans技术,就涉及到组件构件技术(component),这是Java的核心基础部分,很多软件设计概念(设计模式)都是通过JavaBeans实现的。
JavaBeans不属于J2EE概念范畴中,如果一个JavaBeans对象被Web技术(也就是Jsp/Servlet)调用,那么JavaBeans就运行在J2EE的Web容器中;如果它被EJB调用,它就运行在EJB容器中。
EJB(企业JavaBeans)是普通JavaBeans的一种提升和规范,因为企业信息系统开发中需要一个可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。
至此,JavaBeans组件发展到EJB后,并不是说以前的那种JavaBeans形式就消失了,这就自然形成了两种JavaBeans技术:EJB和POJO,POJO完全不同于EJB概念,指的是普通JavaBeans,而且这个JavaBeans不依附某种框架,或者干脆可以说:这个JavaBeans是你为这个应用程序单独开发创建的。
J2EE应用系统开发工具有很多:如JBuilder、Eclipse等,这些IDE首先是Java开发工具,也就是说,它们首要基本功能是可以开发出JavaBeans或Java class,但是如果要开发出J2EE系统,就要落实到要么是Web技术或EJB技术,那么就有可能要一些专门模块功能(如eclipse需要lomboz插件),最重要的是,因为J2EE系统区分为容器和应用两个部分,所以,在任何开发工具中开发J2EE都需要指定J2EE容器。
J2EE容器分为WEB容器和EJB容器,Tomcat/Resin是Web容器;JBoss是EJB容器+Web容器等,其中Web容器直接使用Tomcat实现的。所以你开发的Web应用程序可以在上面两种容器运行,而你开发的Web+EJB应用则只可以在JBoss服务器上运行,商业产品Websphere/Weblogic等和JBoss属于同一种性质。
J2EE容器也称为J2EE服务器,大部分时它们概念是一致的。
如果你的J2EE应用系统的数据库连接是通过JNDI获得,也就是说是从容器中获得,那么你的J2EE应用系统基本与数据库无关,如果你在你的J2EE应用系统耦合了数据库JDBC驱动的配置,那么你的J2EE应用系统就有数据库概念色彩,作为一个成熟需要推广的J2EE应用系统,不推荐和具体数据库耦合,当然这其中如何保证J2EE应用系统运行性能又是体现你的设计水平了。
衡量J2EE应用系统设计开发水平高低的标准就是:解耦性;你的应用系统各个功能是否能够彻底脱离?是否不相互依赖,也只有这样,才能体现可维护性、可拓展性的软件设计目标。
为了达到这个目的,诞生各种框架概念,J2EE框架标准将一个系统划分为WEB和EJB主要部分,当然我们有时不是以这个具体技术区分,而是从设计上抽象为表现层、服务层和持久层,这三个层次从一个高度将J2EE分离开来,实现解耦目的。
因此,我们实际编程中,也要将自己的功能向这三个层次上靠,做到大方向清楚,泾渭分明,但是没有技术上约束限制要做到这点是很不容易的,因此我们还是必须借助J2EE具体技术来实现,这时,你可以使用EJB规范实现服务层和持久层,Web技术实现表现层;
EJB为什么能将服务层从Jsp/Servlet手中分离出来,因为它对JavaBeans编码有强制的约束,现在有一种对JavaBeans弱约束,使用Ioc模式实现的(当然EJB 3.0也采取这种方式),在Ioc模式诞生前,一般都是通过工厂模式来对JavaBeans约束,形成一个服务层,这也是是Jive这样开源论坛设计原理之一。
由此,将服务层从表现层中分离出来目前有两种可选架构选择:管理普通JavaBeans(POJO)框架(如Spring、 JdonFramework )以及管理EJB的EJB框架,因为EJB不只是框架,还是标准,而标准可以扩展发展,所以,这两种区别将来是可能模糊,被纳入同一个标准了。 但是,个人认为:标准制定是为某个目的服务的,总要牺牲一些换取另外一些,所以,这两种架构会长时间并存。
这两种架构分歧也曾经诞生一个新名词:完全POJO的系统也称为轻量级系统(lightweight),其实这个名词本身就没有一个严格定义,更多是一个吸引人的招牌,轻量是指容易学习容易使用吗?按照这个定义,其实轻量Spring等系统并不容易学习;而且EJB 3.0(依然叫EJB)以后的系统是否可称为轻量级了呢?
前面谈了服务层框架,使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关,一般是通过标签库(taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。
这样,表现层和服务层的分离是通过两种框架达到目的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来是其目的,持久层框架有两种方向:直接自己编写JDBC等SQL语句(如iBatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。
持久层框架目前呈现百花齐放,各有优缺点的现状,所以正如表现层框架一样,目前没有一个框架被指定为标准框架,当然,表现层框架现在又出来了一个JSF,它代表的页面组件概念是一个新的发展方向,但是复杂的实现让人有些忘而却步。
在所有这些J2EE技术中,虽然SUN公司发挥了很大的作用,不过总体来说:网络上有这样一个评价:SUN的理论天下无敌;SUN的产品用起来撞墙;对于初学者,特别是那些试图通过或已经通过SUN认证的初学者,赶快摆脱SUN的阴影,立即开溜,使用开源领域的产品来实现自己的应用系统。
最后,你的J2EE应用系统如果采取上面提到的表现层、服务层和持久层的框架实现,基本你也可以在无需深刻掌握设计模式的情况下开发出一个高质量的应用系统了。
还要注意的是: 开发出一个高质量的J2EE系统还需要正确的业务需求理解,那么域建模提供了一种比较切实可行的正确理解业务需求的方法,相关详细知识可从UML角度结合理解。
当然,如果你想设计自己的行业框架,那么第一步从设计模式开始吧,因为设计模式提供你一个实现JavaBeans或类之间解耦参考实现方法,当你学会了系统基本单元JavaBean或类之间解耦时,那么系统模块之间的解耦你就可能掌握,进而你就可以实现行业框架的提炼了,这又是另外一个发展方向了。
以上理念可以总结为一句话:
J2EE开发三件宝: Domain Model(域建模)、patterns(模式)和framework(框架)。
推荐一套高质量的J2EE开源系统:
JPestore
如果初学者没有理解,欢迎
继续讨论
,大胆提出你心中的疑问。
发表评论
-
多线程环境下使用log4j输出各线程的标识
2012-08-15 16:43 1869多线程环境下使用log4j输出各线程的标识 -
证书导入导出
2011-01-16 11:30 1406导入导出命令示例:证书导入:keytool -import - ... -
BigDecimal使用
2010-06-30 12:02 1442public static void main(Str ... -
org.apache.commons.collections.CollectionUtils.filter
2010-06-17 16:11 1710org.apache.commons.coll ... -
Eclipse is running in a JRE, but a JDK is required
2010-05-22 03:47 1238Eclipse is running in a JRE, b ... -
基于StringTemplate的视图
2010-04-21 15:51 1295基于StringTemplate的视图 一 String ... -
JAVA中数组
2010-04-18 23:53 13691、数组不是集合,它只能保存同种类型的多个原始类型或者对象的引 ... -
Java中String类的方法及说明
2010-04-18 23:26 866http://blog.sina.com.cn/s/blog_ ... -
math.ceil round floor
2010-04-18 23:15 1177Math.ceil(x):比x大(或X相等)的最小 doub ... -
使用java.util.concurrent实现的线程池、消息队列功能
2010-04-18 22:47 2312ThreadPoolManager类:负责管理线程池,调用轮询 ... -
5.0新特性:
2010-04-09 16:58 10705.0新特性:前提:1. JVM没有变, 编译器改变 ... -
什么是线程安全?
2010-04-07 03:25 1868什么是线程安全? 如果你的代码所在的进程中有多个线程在同时 ... -
elipse工作空间中的.metadata
2010-03-26 16:44 1218有时在用eclipse开发时,可能会使编辑器出现异常,这 ... -
BEA WebLogic 9.2平台加速部署Web服务应用
2010-02-23 09:03 2178作为业界知名的Java企业版(JEE)应用基础架构平台,BEA ... -
读内存还是存文件然后读文件
2010-01-28 17:15 1117读内存还是存文件然后读文件,一般优先于读内存为好。 -
spring配置文件名称的最好按java规范进行编写
2010-01-19 09:33 1442spring配置文件名称的最好按java规范进行编写 ... -
Eclipse中安装svn插件Subversive
2010-01-08 11:25 2896最简单的方法是通过Eclipse的插件自动下载和更新功能。 ... -
接口,抽象类
2009-12-02 17:09 1120接口定义了其实现应提供的行为特征 比如 Java code ... -
java基础_容易出错的知识点!
2009-11-30 00:23 1089------------------------------- ... -
java基础_传值与传址方法调用
2009-11-25 02:15 3018public class PassTest { publi ...
相关推荐
### 初学者如何开发出高质量J2EE系统 随着信息技术的发展和互联网的普及,Java作为一门重要的编程语言,其在企业级应用中的地位愈发凸显。Java 2 Platform, Enterprise Edition (J2EE) 是Java技术栈的一个分支,...
通过系统地学习和实践以上知识点,初学者可以逐步构建出高质量的J2EE系统。在实际开发中,不断学习新的技术和最佳实践,如Spring框架、微服务架构、DevOps工具链等,将有助于不断提升自己的专业水平。
J2EE(Java 2 Platform, Enterprise Edition)是一个由SUN公司推出的用于构建企业级应用的Java平台标准。这个标准旨在解决企业应用开发中的复杂性,提高代码的可重用性和系统的可扩展性。对于初学者来说,理解以下几...
J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级分布式应用的框架,它包含了多种服务、API和协议,用于开发多层结构的应用程序。 本书首先会引导读者理解J2EE的核心概念,包括...
4. **优秀的框架支持**:J2EE提供了一个稳定的企业级应用程序框架,有助于开发者快速构建高质量的应用。 #### 四、当前的J2EE生态系统 J2EE由Sun Microsystems开发,最高版本为1.4。目前市场上支持J2EE的应用...
J2EE系统为企业级应用程序的开发提供了强大的支持,通过深入理解其核心概念和技术细节,初学者可以更加高效地构建高质量的应用程序。在未来的学习过程中,建议结合实际项目经验,逐步掌握并灵活运用这些知识。 通过...
3. **Spring**:Spring 是一个轻量级的 Java 开发框架,提供了 IoC 和 AOP 等强大的功能,可以极大地提高开发效率和代码质量。 4. **EJB**:Enterprise JavaBeans(EJB)是 J2EE 规范的一部分,主要用于开发企业级...
4. **企业级框架**:J2EE为高质量、快速的开发提供了统一的框架。 **四、现状** J2EE的最新版本是1.4,尽管现在已经有了更新的Java EE(后更名为Jakarta EE)版本,但J2EE仍然在许多企业中广泛应用。常见的J2EE...
J2EE指南不仅覆盖了J2EE的核心概念和技术要点,还提供了大量的实践案例和操作指导,旨在帮助Java开发者快速掌握J2EE开发的核心技能,从而能够高效地构建高质量的企业级应用程序。无论是初学者还是有一定经验的开发者...
Java教程中的J2EE是Java 2 Platform, Enterprise Edition的简称,主要针对企业级应用的开发,为初学者提供了丰富的工具和框架。以下是对J2EE初学者需要理解的五个关键问题的详细解释: 1. **J2EE提出的背景**: 在...
《J2EE企业及测试案例(设计框架应用开发)》是一个综合性的学习资源,主要针对J2EE平台上的企业级应用程序开发和测试。这个资源详细介绍了J2EE的基础知识,适合初学者入门学习。以下是一些核心知识点的概述: 1. *...
本篇文章将详细介绍如何利用Eclipse进行J2EE应用程序的开发,帮助初学者和有经验的开发者更好地理解和掌握这一过程。 首先,J2EE(Java Platform, Enterprise Edition)是Oracle公司提供的一个用于开发企业级应用...
《MyEclipse 6 J2EE开发中文手册》是一份专为Java EE开发者设计的详尽指南,旨在帮助用户熟练掌握MyEclipse 6这一强大的集成开发环境(IDE)进行...通过深入阅读和实践,你将能够高效地开发出高质量的J2EE应用程序。