快捷搜索:  as

初学者如何开发出高质量J2EE系统

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

您可能还会对下面的文章感兴趣: