J2EE技术路线选型.ppt_第1页
J2EE技术路线选型.ppt_第2页
J2EE技术路线选型.ppt_第3页
J2EE技术路线选型.ppt_第4页
J2EE技术路线选型.ppt_第5页
免费预览已结束,剩余46页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、J2EE技术路线,普元软件,提纲,J2EE企业应用框架,1,2,J2EE技术框架的发展,3,分层选型,4,推荐方案,5,方案讨论,标准的J2EE的总体结构图,框架分层,框架分层,表现层:表现层英文是Presentation Layer,是实现显示功能的,这部分一般使用B/S结构来完成,也可以使用专门远程客户端来实现。 业务逻辑层:业务逻辑层因为是由大量组件(Components)组成的,也可称为组件层,组件从不同角度又可分为各种类型,然后又有不同的流派,目前占主要位置的是Model+Service,模型加服务,所以这一层又称为业务服务层Business Service;也有称为Model业务层

2、。 持久层:持久层是负责对象持久化也就是数据库操作的层次,英文Persistence Layer,提纲,J2EE技术框架的发展,2,1,J2EE企业应用框架,3,分层选型,4,推荐方案,5,讨论,框架分类重量级框架,基于EJB的重量级框架 因为EJB标准的推出,业务组件层以前基本是EJB的天下,但是EJB功能实在太强大,它考虑了世界顶级大型系统需求,EJB容器能够很好的处理系统性能、事务机制、安全访问权限以及分布式运算等问题,使用它几乎能解决企业级应用涉及到的所有问题,因此免不了显得很复杂,我们称基于EJB框架是一个功能复杂的重量级框架。,重量级框架的技术实现 表现层采用jsp/servlet

3、 业务组件层使用EJB的会话Bean 持久层使用实体Bean,框架分类重量级框架,J2EE技术框架的发展表现层,JSP中嵌入java代码:虽然满足页面开发的功能要求,一旦出现空指针异常就很难找出问题。 引入MVC模式,规定JSP只能等同于HTML,不能包含JAVA代码。 产生了JSP与JAVA结合的困难问题,同时直接采用JSP开发,开发效率得不到保障。 STRUTS解决了这个问题,它通过ActionForm可以将Jsp和JavaBeans方便快速地结合起来 问题来了,Struts的ActionForm限制太死,只能一个ActionForm一个表单对应,而不能任意组件JavaBeans都可以和J

4、sp任意字段对应。 组件型框架JSF/Tapestry解决了这个问题。,J2EE技术框架的发展业务层,EJB功能实在太强大,它考虑了世界顶级大型系统需求,因此业务层的实现免不了显得很复杂。 只用EJB的部分功能的要求,目前EJB规范还没不支持。 Ioc/AOP技术为这种目标实现提供了实现可能。 只有Ioc/AOP还是不够,特别是看Ioc的范围,如果你只把应用系统组件纳入Ioc管理时,自由解耦只属于应用系统。 POJO组件,POJO这个概念其实当初是针对EJB缺点而推出, POJO代表那种与周围完全脱离关系、自由自在的Object了 SPRING与EJB3.0都支持POJO并支持Ioc/AOP技

5、术。,J2EE技术框架的发展持久层,JDBC,它是J2SE中访问关系数据库系统的标准API JDBC以一种错误的编程模型来强制开发者用Java代码来处理关系思想 EJB的实体Bean,它是EJB中专门模型化持久化实体的组件。 而实体beans,给人很笨重的感觉;连持久对象间的关系都不能处理。 Hibernate出现,简化了持久层的开发,提升了开发效率。 Hibernate不够灵活,复杂查询难以实现。 Ibatise出现,可以支持灵活的持久层的开发。 提出了JPA来一统ORMap的天下。,提纲,分层选型,3,1,J2EE分层结构,2,J2EE技术框架的发展,4,推荐方案,5,讨论,表示层框架研究

6、,Struts2: Struts2虽然是在Struts1的基础上发展起来的,但实质上是以WebWork为核心,Struts2为传统的Struts1注入了WebWork的设计理念,统一Struts1和WebWork两个框架。 Jsf: JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以构件为中心来开发 Java Web 用户界面的方法,从而简化了开发。 Flex:adobe公司产品,类flash技术,使用脚本语言,开发速度快 Typestry: Tapestry是基于组件(Component),高效能的Web应用框架,Types

7、try,优点: 全面支持构件化,节省开发资源。 HTML模板对页面设计师非常有利 精确的错误报告 每出一个新版本,都会有大量的创新 缺点 文档过于概念性,不够实用 学习曲线陡峭 发行周期长每年都有较大的升级,框架对比,框架对比,选型标准,标准 构件 技术前瞻性 开发效率 可维护性 厂商支持 开发工具 适用范围 可用资源 发展前景,表示层框架比较,表示层的对比测试,Spring,Spring是一个开源框架,Spring框架是J2EE实用主义的设计思想的全面和具体的实现。Spring框架由一个容器,一个配置和组织构件的框架,和一组内置的为事务、持久化和Web用户接口提供的服务组成。作为一种轻量级的

8、J2EE框架,Spring提供了一种有效的方式来建立和组织J2EE应用程序。 Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。,EJB3,EJB3是EJB技术的里程碑,也是JavaEE平台历史上最重大的进展之一。它吸取了Spring使用POJO和依赖注入的思想,并以Hibernate为基础引入JPA。取代了此前EJB中最为人诟病的实体Bean。与此同时,它保留了EJB原有的强大功能。通过这样的兼容并蓄,EJB3实现了涅檠,如今,它不仅获得了各主流厂商的普遍支持。而且赢得开源Java社区的广泛

9、欢迎,再次成为Java企业级开发的明星。,逻辑层框架比较,Hibernate,Hibernate 是一个面向Java环境的对象/关系数据库映射工具 把对象模型表示的对象映射到基于SQL的关系模型结构中去 它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 Hibernate可以应用在任何使用JDBC的场合,Ibatis,传统的OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射 iBATIS是将SQL查询的参数和结果集映射到类。 iBATIS做的是SQL Mapping的工作。它把SQL语句看成输入以及输出,

10、结果集就是输出,而where后面的条件参数则是输入。 iBATIS能将输入的普通POJO对象、Map、XML等映射到SQL的条件参数上,同时也可以将查询结果映射到普通POJO对象(集合)、Map、XML等上面。,JPA,JPA(Java Persistence API)是Java EE 5.0平台标准的ORM规范,得到所有Java EE服务器的支持。 Sun这次吸取了之前EJB规范惨痛失败的经历,在充分吸收现有ORM框架的基础上,得到了一个易于使用、伸缩性强的ORM规范。 从目前的开发社区的反应上看,JPA受到了极大的支持和赞扬,JPA作为ORM领域标准化整合者的目标应该不难实现。,持久层选型

11、,提纲,推荐方案,4,1,J2EE分层结构,2,J2EE技术框架的发展,3,分层选型,5,讨论,推荐方案,Jsf+spring2.x+(jpa可选),(Struts2集成jsf)+spring2.x+(jpa可选),表示层选型-JSF,标准: JSF1.2规范是SUN公司JEE5规范的一部分,与JEE5一起发布的 JSP2.1规范与JSF1.2规范统一了两者将表达式语言(ExpressionLanguage,EL)。 构件化: JSF,是一种面向组件和事件驱动模型的WEB开发技术。 JSF提供丰富的底层构件去开发组件,可添加到标准组件集中。,表示层选型-JSF,技术前瞻性: JSF使用依赖注入

12、(DJ)(或控制反转(IoC)去实例化和初始化Bean。 页面流程控制通过Faces-config.XML来配置。 开发工具: Sun的Java Studio Creator2 Oracle的Oralce Jdeveloper 10g Eclipse也有相应的插件提供对JSF的支持,表示层选型-JSF,厂商支持: Sun的JSF WEB UI IBM的JSF extension Oracle的ADF Faces 其它开源项目 可用资源: JSF自定义组件比较丰富,有很多的开源组织提供了很多的组件,例如:richFaces ajax4jsf icefaces 等 网上也有很多学习资料。,表示层选

13、型-JSF,发展前景: JSF成为表示层的规范,将有越来越多的厂商支持, 与JSP表达式语言(ExpressionLanguage,EL)的统一,将使JSF的通用性更强,学习成本大大降低。,业务层选型-SPRING,标准: Spring框架本身不是标准,但已广泛应用,成为事实标准。 Spring支持SCA规范及OSGI规范。 构件化: Spring在SCA中可以做为一种组件实现技术来使用。Spring框架能用于创建服务组件,并通过其依赖注入特性来连线构件中的服务组件。 Spring Dynamic Modules 1.1.3 Released全面支持OSGI规范。,业务层选型-SPRING,技

14、术前瞻性: Spring是IOC(Inversion of Control)和面向切面编程(Aspect-Oriented Programming ,AOP)的组合体。 支持远程组件 支持使用多协议的通讯 支持从各种编程语言实现的组件装配成应用 支持异步编程模式 支持组件以及组件与组件之间的灵活策略应用,业务层选型-SPRING,开发工具: eclipse是应用最广的spring开发工具 Oracle有针对spring的开发工具包 厂商支持: 开源组织:目前spring只由开源组织spring的开发小组进行支持。,业务层选型-SPRING,可用资源: Spring应用广泛,j2ee架构的系统中

15、采用spring的超过半数,网络上有大量的学习资源,JAVA开发人员中了解spring框架的人数众多。 网上也有很多学习资料。 发展前景: Spring溶入了SOA发展的大潮 Spring成为SCA的实现技术 Spring Batch 2.0.0.RC1 Released Spring Dynamic Modules 1.1.3 Released,持久层选型-JPA,标准: JPA(Java Persistence API)作为Java EE 5.0平台标准的ORM规范 JPA的宗旨是为POJO提供持久化标准规范。 构件化: 融合ORM技术,支持持久层的构件化开发。,持久层选型-JPA,技术前

16、瞻性: ORM映射元数据,JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; JPA的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。 查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。,持久层选型-JPA,厂商支持: Hibernate:Hibernate就是JPA Provider中很强的一个,Hibernate从3.2开始,就开始兼容JPA。Hibernate3.2获得了S

17、un TCK的JPA(Java Persistence API) 兼容认证。 Spring:在Spring 2.0.1中,正式提供对JPA的支持,这也促成了JPA的发展,JPA的好处在于可以分离于容器运行,变得更加的简洁。 OpenJPA:OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大、使用简单的持久化数据管理框架。,持久层选型-JPA,开发工具: JPA是需要Provider来实现其功能,开发工具与具体实现相关。 可用资源: JPA的各种provider资料网上都可以找到,持久层选型-JPA,发展前景: JPA已经作为

18、一项对象持久化的标准,不但可以获得Java EE应用服务器的支持,还可以直接在Java SE中使用。开发者将无需在现有多种ORM框架中艰难地选择,按照Sun的预想,现有ORM框架头顶的光环将渐渐暗淡,JPA将一统ORM世界。,JPA的实现-hibernate,Hibernate是JPA的一个实现,但是其功能是JPA的超集。 JPA是标准接口,Hibernate是实现:Hibernate主要是通过三个构件来实现的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。 hibernate-annotation是Hibernate

19、支持annotation方式配置的基础,它包括了标准的JPA annotation以及Hibernate自身特殊功能的annotation。 hibernate-core是Hibernate的核心实现,提供了Hibernate所有的核心功能。 hibernate-entitymanager实现了标准的JPA,可以把它看成hibernate-core和JPA之间的适配器,它并不直接提供ORM的功能,而是对hibernate-core进行封装,使得Hibernate符合JPA的规范。,JPA的实现-OpenJPA,OpenJPA是从BEA的Kodo产品发展而来的,而Kodo产品的代码在2006年被

20、捐献给了Apache基金会。从那时候起,这个项目就开始不断成长,逐渐包含了对应用服务器和工具广泛的支持。 OpenJPA完成了对Java持久化API的实现(JPA),具有Apacher软件许可证。OpenJPA可作为一个独立的POJO持久化层使用,也可以和EJB3.0容器和许多的轻量级的框架整合。 它已经被BEA采用为WebLogic Server 10的EJB3 JPA实现,并且,它还被采用在最新的IBM WebSphere应用服务器的EJB3特性包中。,JPA的实现- Toplink,Toplink原署WebGain公司的产品,后被Oracle收购,并重新包装为 Oracle AS Top

21、Link。TOPLink为在关系数据库表中存储 Java 对象和企业 Java 组件 (EJB) 提供高度灵活和高效的机制。TopLink 可以与任何数据库、任何应用服务器、任何开发工具集和过程以及任何 J2EE 体系结构协同工作。 Toplink是Oracle公司捐献给开源社区的,是最早的ORM映射框架之一,也是对JPA规范支持最好的一个框架。 Toplink最新的版本是Version 2 Build 41,Oracle已经将其捐献给Eclipse社区,并且在Sun的开源应用服务器Glassfish中,被使用为默认的JPA的实现。由于它有良好的商业背景及广泛的应用,因此对使用JPA的开发人员来说,它便是更好的实现者选择。,实现技术比较,Hibernate与TopLink比较,提纲,推荐方案,4,1,J2EE分层结构,2,J2EE技术框架的发展,3,分层选型,5,讨论,演进方案,技术

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论