您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 第1章 JavaEE概述要点
第1章JavaEE概述第1章JavaEE概述1.1JavaEE简介1.2JavaEE分层架构1.3JavaEE技术规范1.4敏捷轻型框架1.5JavaEE开发环境习题第1章JavaEE概述1.1JavaEE简介1.1.1什么是JavaEEJavaEE是基于Java的解决方案,是Java平台的企业版,是一套技术架构。JavaEE的核心是一组技术规范与指南,它使开发人员能够开发具有可移植性、安全性和可复用的企业级应用。JavaEE良好定义和设计的体系结构保证了开发人员更多地将注意力集中于架构设计和业务逻辑上。第1章JavaEE概述1.1.2JavaEE的新特性1、标注(Annotation)是JavaEE5引入的一个新特性。标注之于程序是一种元数据,标注这种元数据按照其作用可以分为三类:编写文档、代码分析、编译检查。用于编写文档是通过代码里的标注元数据生成文档,例如@Documented,用于定制javadoc不支持的文档属性,并在开发中使用。用在代码分析的标注如@Deprecated,指出这是个不建议使用的方法。第1章JavaEE概述引入标注可以实现多种功能的简化,例如:(1)定义和使用WebService。(2)开发EJB组件。(3)映射Java类到XML文档。(4)映射Java类到数据库。(5)依赖注入。(6)指定部署信息等。有了Annotation,在Web应用开发中直接在代码中使用标注就可以告知JavaEE服务器如何部署及运行,而不必再编辑WEB-INF/web.xml文件了。第1章JavaEE概述2、EJB3EJB3是EJB2的升级,不像EJB2是重量级框架,EJB3的持久化变更加简化,是轻量级的。它不再需要EJBhome接口,不再需要实现SessionBean接口,JDNIAPI也不再是必需的。EJB部署描述符变成可选的功能。此外,EJB3中还引入了拦截器功能。拦截器是AOP在EJB中的实现,是可以对Bean的业务方法进行拦截的组件。拦截器可以用于无状态会话Bean、有状态会话Bean和消息驱动Bean。拦截器用来监听程序的一个或者多个方法,它对方法调用提供了控制。第1章JavaEE概述3、JPAJPA(JavaPersistenceAPI),即数据持久化API,它是一个轻量级的对象持久化模型,是JavaEE的又一新特性。Sun公司推出JPA规范目的在于简化现有JavaEE和JavaSE应用的对象持久化工作,希望统一ORM技术,因为在JPA出现之前,各种ORM框架之间的API差异很大,使用了某种ORM框架的系统会受制于该ORM的标准。JPA本质上是一种ORM规范,并未提供ORM实现,其具体实现由其他的厂商提供。程序员若要使用JPA,需要选择JPA的实现框架,Hibernate3即是这样一个实现了JPA的一个框架。第1章JavaEE概述4、WebService支持WebService是建立可互操作的分布式应用程序的新平台,程序员可能使用COM或DCOM建立过基于组件的分布式应用程序,或者使用CORBA、RMI等技术实现远程调用。WebService平台也是这样的一套标准,而且它做的更好。它定义了应用程序如何在Web上实现互操作。WebService平台需要一套协议来实现分布式应用程序的创建。第1章JavaEE概述5、依赖注入所谓依赖注入(DependencyInjection)是指当某个角色(可能是一个Java实例,调用者)需要另外一个角色(另外一个Java类的实例,被调用者)的协助时,在传统的程序设计过程中,通常是由调用者来创建被调用者的实例。在一些轻型框架如Spring中,创建被调用者的任务不再由调用者完成,而是由Spring容器完成,然后以某种方式注入给调用者,称为依赖注入,也称为控制反转。通过依赖注入降低了代码的耦合度,也使得资源访问变得更加容易。第1章JavaEE概述6、泛型泛型(Generics)是程序设计语言的一种特性,支持泛型的程序设计语言允许程序员在编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。泛型主要是引入了类型参数这个概念。第1章JavaEE概述JavaEE5通过引入泛型,使得集合元素类型参数化,避免了运行时出现类型转换错误,因此不必要加入显式强制类型转换的操作了。下面的例子对此作了说明:不使用泛型时:ArrayListlist=newArrayList();list.add(0,newInteger(42));inttotal=((Integer)list.get(0)).inValue();第1章JavaEE概述使用了泛型后:ArrayListIntegerlist=newArrayListInteger();list.add(0,newInteger(42));inttotal=list.get(0).inValue();读者可以体会这两个例子之间的微妙差异,进而理解用反型的好处。第1章JavaEE概述7、枚举枚举类型是JavaEE5开始引入的类型,本质上枚举类型就是一个命名变量的列表。枚举类型通过关键字enum来声明。下面是一个枚举的例子:publicenumWeek{Monday,Tuesday,Wednesday,Thursday,第1章JavaEE概述Friday,Saturday,Sunday}对命名常量可以通过类似对象成员的方法或者通过方法values()、valueOf()、ordinal()、name()等方法进行存取操作。下面的for循环将输出枚举的所有命名常量。for(Weekw:Week.values())System.out.println(w);第1章JavaEE概述8、增强的for循环JavaEE5中的增强的for循环简化了数组和集合的遍历操作,其语法更简单,可以防止下标越界的问题出现,而且还可以避免由于强制类型转换导致的错误。下面是一个使用增强for循环对数组元素进行遍历的例子。inta[]={1,2,3,4,5,6};for(intnum:a)System.out.println(num);第1章JavaEE概述9、函数可变参数JavaEE5之前,方法的参数个数是固定的。JavaEE5允许创建具有可变参数的方法,这使得某些操作变得更方便了。下面的程序例子可以说明这一点。publicclassVarArgument{publicstaticvoidmain(Stringargs[]){System.out.println(add(2,3));System.out.println(add(2,3,4,5));}publicstaticintadd(int…args){intsum=0;for(inti=0;iargs.length;i++){sum+=args[i];}returnsum;}}第1章JavaEE概述10、静态导入在JavaEE5之前的版本中,程序中使用静态成员要在其前面加类名引导。JavaEE5引入静态导入意味着不必再写类名,而是直接通过静态成员的名字来访问它们。例如://静态导入importstaticjava.lang.System.*;importstaticjava.lang.Math.*;…//调用静态成员out.println(sqrt(6));//不再是Math.sqrt(6)第1章JavaEE概述1.2JavaEE分层架构1.2.1分层模式概述分层模式是常见的架构模式。分层描述的是这样一种架构设计过程:从最低级别的抽象开始,称为第1层。在此基础上逐步向上进行抽象。直至达到功能的最高级别。分层模式的特点包括:伸缩性:伸缩性是指应用程序能支持更多用户的能力。应用的层数少,可以增加资源(如CPU、内存等)的机会就少。反之,则可以把每层分布在不同的机器上。可维护性:指的是发生需求变化时,只需修改软件的局部,不必改动其他部分的代码。第1章JavaEE概述可扩展性:可扩展性是指在现有系统增加新功能的能力。分层的结构中可扩展性较好,这是由于可以每个层中插入功能扩展点,而不改变原有的整体框架。可重用性:可重用性指的是同一程序代码可以满足多种需求的能力。例如,业务逻辑层可以被多种表示层共享,即业务逻辑层的代码被重用了。可管理性:指管理系统的难易程度。第1章JavaEE概述1.2.2JavaEE的结构JavaEE使用多层分布式的应用模型,该模型通过四层来实现,分别为:⑴客户层:运行在客户计算机上的组件。⑵Web层:运行在JavaEE服务器上的组件。⑶业务层:同样是运行在JavaEE服务器上的组件。⑷企业信息系统层(EIS):是指运行在EIS服务器上的软件系统。有时我们把客户层和Web层视为一个层,这样就可以将以上结构按三层来划分,如下图所示。第1章JavaEE概述第1章JavaEE概述在这个分层体系中,客户层组件可以使基于Web方式的,也可以是基于传统方式的。Web层组件可以使JSP页面或者Servlet。对于业务逻辑层组件,其代码是处理如银行、零售等具体行业或领域的业务需要,由运行在业务层上的EnterpriseBean进行处理。企业信息系统层处理企业信息系统软件,包括企业基础建设系统,例如企业资源计划(ERP)、大型机事务处理、数据库系统和其他遗留系统。第1章JavaEE概述1.3JavaEE技术规范1.JDBC(JavaDatabaseConnectivity)JDBCAPI为访问不同的数据库提供了一种统一的机制,像ODBC一样,JDBC使操纵数据库的细节对开发者透明,另外,JDBC对数据库的访问也具有平台无关性。2.JNDI(JavaNameandDirectoryInterface)名字和目录服务,为应用提供一致的模型来访问企业级资源,如DNS和LDAP、本地文件系统或应用服务器中的对象。第1章JavaEE概述3.EJB(EnterpriseJavBean)企业Java组件,提供一个框架来描述分布式商务逻辑,开发具有可伸缩性和复杂的企业级应用。EJB规范定义了组件何时如何与它们的容器进行交互。容器负责提供公用的服务,如目录、事务管理、安全性等。需要说明的是,EJB并不是实现JavaEE企业应用的惟一渠道,它的意义在于它是专为分布式大型企业应用而设计,用它编写的程序具有良好的可扩展性和安全性。第1章JavaEE概述4.RMI(RemoteMethodInvoke)远程方法调用,顾名思义,它用于调用远程对象的方法。它使用了序列化方式在客户端和服务器端传递数据。5.JavaIDL/CORBA(JavaInterfaceDefinitionLanguage/CommonObjectRequestBrokerArchitecture)Java接口定义语言/公用对象请求代理结构。为Java平台添加了CORBA(CommonObjectRequestBrokerArchitecture,公用对象请求代理体系结构)功能,从而可提供基于标准的互操作性和连接性。第1章JavaEE概述JavaIDL使分布式、支持Web的Java应用程序可利用ObjectManagementGroup定义的行业标准OMGIDL(ObjectManagementGroupInterfaceDefinitionLanguage,对象管理组接口定义语言)及IIOP(InternetInter-ORBProtocol,Internet对象请求代理间协议)来透明地调用远程网络服务。运行时组件包括一个全兼容的JavaORB,用于通过IIOP通讯进行分布式计算。第1章JavaEE概述6.JSP(JavaServerPages)JSP页面由HTML代码和嵌入其中的Java代码组成。服务器在页面被客户端请求以后,对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。7.JavaServletServlet是运行在
本文标题:第1章 JavaEE概述要点
链接地址:https://www.777doc.com/doc-3715348 .html