JAVA企业级应用开发技术综述.docx_第1页
JAVA企业级应用开发技术综述.docx_第2页
JAVA企业级应用开发技术综述.docx_第3页
JAVA企业级应用开发技术综述.docx_第4页
JAVA企业级应用开发技术综述.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

JAVA企业级应用开发技术综述(江西理工大学信息工程学院,江西 赣州341000)摘要:本文简要介绍Java EE的发展历程,浅析了Java EE 7的一些特性,展望Java EE 8,最后介绍第三方开源Java EE框架,以此以加深对Java EE的理解,从而更好的应用它。关键字: Java EEOverview of JAVA Enterprise Application and Development Technology (Faculty of Information Engineering,Jiangxi University of Science and Technology,Ganzhou 341000 China)Abstract: This paper describes the development process of Java EE, and analysis some features of Java EE 7, prospect of Java EE 8, finally, introduction the third party open source Java EE framework in order to understanding of Java EE deeply and better apply it.Keyword: Java EE0 引言Java EE(Java Platform,Enterprise Edition)是sun公司推出的企业级应用程序版本。这个版本以前称为 J2EE。能够为我们帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序。Java EE 是在 Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0应用程序。Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet.1 Java EE的发展历程(1) 1991年4月:Sun Microsystems公司由James Gosling领导的一个叫“Green”的项目;(2) 1995年5月:Sun在Sun World95大会上正式发布Java;(3) 1996年1月:Sun公司发布了Java开发工具包JDK 1.0;(4) 1997年2月:Sun公司发布了JDK 1.1;(5) 1998年:Sun公司发布了JKD 1.2和JSP/Servlet、EJB规范; (6) 1999年:Sun把Java 2 platform技术一分为三:J2SE、J2EE和J2ME;(7) 2001年 9月:在JDK1.3发布16个月后,Sun发布了J2EE 1.3;(8) 2003年11月:在JDK1.4发布21个月后,SUN发布了J2EE1.4;(9) 2004年10月:Sun公司发布了期待已久的JDK1.5。相应的标准版称为Java SE 5.0,相应的企业版Java EE 5.0于2006年5月也正式发布;(10) 2006年12月:Java SE 6.0发布,但相应的企业版在2009年12月才正式发布;(11) 2009年12月:Java EE 6的发布;(12) 2013年6月:甲骨文公司发布了 Java EE 7。2 浅析Java EE 72013年6月中旬甲骨文公司发布了 Java EE 7,该版本的新特性主要集中在提高开发人员的生产力、加强对 HTML5 动态可伸缩应用程序的支持和进一步满足苛刻的企业需求这三个方面。图1 Java EE 7 新特性Java EE 7 使得开发人员可以写更少的样板代码,通过丰富的组件来提供一个完整、全面、集成的堆栈来支持和构建最新的 Web 应用程序和框架,同时提供更具扩展性、丰富性和简易的功能。企业将会从便捷式批处理、改进的扩展性等新功能中获益。下面我们简单分析下Java EE 7的特性:(1) 提高开发人员的生产力减少冗余代码Java EE 7 一直在致力于减少在核心业务逻辑代码运行前必须执行的样板代码。减少样板代码的三大核心区域是默认资源、JMS 2.0 和 JAX-RS 客户端 API。JMS2.0 在可伸缩性和可移植性上经历了重大的改进,减少了冗余代码,已运用在无数的产品部署上,事实证明它是一个良好的规范,能够较好地满足企业的需求。更多带注释的POJO通过注释 Java EE 使开发人员更专注于 Java 对象的编程而无需关注繁琐的配置。CDI 现在默认情况下已不需要使用 beans.xml 文件就可以直接使用。开发人员可以不需要任何配置而是简单的使用 Inject 来注入任何 Java 对象。包括新的资源注释 JMSDestinationDefinition 和 MailSessionDefinition ,使得开发人员在源代码中就可以指定元数据资源,简化了 DevOps 体验。更紧密集成的平台Java EE 7 为平台引入了易用的 EJB 容器管理事物,使用基于 CDI 拦截器的解决方案来保证事务可用在 CDI managed beans 和其它 Java EE 组件中,把注释 Transactional 应用到任何 CDI bean 或者任何支持事务的方法中。Bean Validation 在 Java EE 7 中使用广泛,现在可以用于方法级别的验证,包括内置和自定义的约束。约束可被应用于方法的参数以及返回值。约束也可以使用灵活渲染和违反约束的字符串格式的 Java EE 的表达语言。通过精简现有技术来简化Java EEJava EE 7 中新增加了许多新的特性,有些老的特性和功能已经被更简单的特性所替代或直接弃用。Java EE 6 为过时技术的弃用和功能的修剪引入了一个正式的流程,以下的 API 在 Java EE 7 中已成可选:Java EE Management (JSR-77),原本是用于为应用服务器创建监控管理的 API,可各大供应商对此 API 热情并不高涨;Java EE Application Deployment (JSR-88),JSR 88 是当初用于 J2EE 应用程序在应用服务器上进行配置和部署的标准 API 。可是该 API 始终没有得到众供应商的支持;JAX-RPC,是早期通过 RPC 调用和 SOAP web services 进行交互的编程模型。由于 Web services 成熟后从 RPC 模型中分离出来,被更加健壮和具备更多特性的 JAX-WS API 所替代;EJB 2.x Entity Beans CMP,复杂、笨重、过度复杂的 EJB2.* 的 Entity Bean 模型已经被 Java EE 5 的基于 POJO 的流行轻量级 JPA 持久层模型所代替。(2) 加强对 HTML5 动态可伸缩应用程序的支持低延迟数据交换:Java API for WebSocket 1.0越来越多的 web 应用程序依赖于从中央服务器及时获取并更新数据。基于 HTTP 的 WebSockets 为解决低延迟和双向通信提供了一种解决方案。在 WebSocket API 的最基层是一个带注释的 Java 对象(POJO)简化应用数据分析和处理:Java API for JSON Processing 1.0JSON 作为一个轻量级的数据交换格式被应用在许多流行的 Web 服务中用来调用和返回数据。许多流行的在线服务都是使用基于 JSON 的 RESTful 服务。在 Java EE 7 之前,Java 应用程序使用了不同的类库去生成和解析 RESTful 服务中的 JSON 对象。然而,现在这个功能已被标准化。可扩展的RESTful服务:JAX-RS 2.0JAX-RS 2.0 增加了异步响应处理,这对于支持对数据有着高要求的 HTML5 客户端的扩展是至关重要的。异步处理是一种更好更有效利用线程处理的技术。在服务器端,处理请求的线程在等待外部任务去完成时应该避免阻塞,从而保证在这一时间段内到达的其他请求能够得到响应。同样的,在客户端,一个发出请求的线程在等待响应的时候也会发生阻塞,这影响了应用程序的性能。新的 JAX-RS 2.0 异步客户端 API 使得客户端调用 RESTful 可以和其他客户端活动并行执行。异步的好处是使得一个客户端可以同时调用多个后台服务,对于一个使用者来说减少了总体的延迟时间。增强开发的易用性:JSF 2.2JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的 Java 新标准框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。在这个版本中,JSF 增加了对 HTML5 的支持。JSF 2.2 增加了一个叫“pass-through elements”的新功能。并为现有的元素增加了一系列的新属性,如输入元素“tel”、“range”和“date”等。对于“pass-through elements”,JSF 渲染器将会忽略这些元素,只是把它们传给支持 HTML5 的浏览器,这使得可以利用现有的 JSF组件来利用 HTML5 的特性来正常渲染。HTML5 的动态性使得服务器端处理信息更新的请求不断增多,这可以使 HTML5 客户端快速得到响应。在 Java EE 7 中使用新的事件驱动 API Servlet 3.1 从客户端读取数据将不会造成阻塞。如果有数据可用时,Servlet 线程将会读取和处理这些数据,否则就去处理其他请求。(3) 进一步满足苛刻的企业需求Java EE 十几年来一直努力满足企业的需求,使用 Java 连接器连接到企业服务端、使用 Java 事务支持事务处理、使用 Java 消息服务让系统间可以进行相互通信。现在企业希望利用开发人员的 Java 技能编写基于标准的 API 并能够跨平台运行的批处理应用程序。企业也需构建高度可扩展的应用来满足更高的服务要求并提高现有资产的利用率。Concurrency Utilities 使得 Java EE 开发人员编写可扩展的应用程序成为可能。3 展望Java EE 8(1)Java EE 7已经发布快一年了(2013年6月发布),开发团队在这段时间内也一直在规划下一个大版本Java EE 8。近日,Java EE社区开展了一项调查,看开发者希望哪些功能出现在Java EE 8版本中,下图展示了开发者认为应该包含在JavaEE 8中的一些比较重要的JSR。其中79%的用户认Java API for JSON Binding比较重要,其次是JCache和Java EE Configuration。图2 调查表1 关于HTML5在Java EE 8社区调查中,针对HTML5的改进建议一部分集中在全部或部分采用用户代理,其中有1/3的开发者建议标准化一个JavaScript框架,或者优化并集成一个特定框架。其他开发者建议在JavaEE和用户代理之间提供几种形式的直接绑定,建议标准化一个客户端适配层,比如Sencha touch或Apache Cordova。另一些开发者的建议主要集中在JSF上,认为应该进一步加强现有的JSF对HTML5支持情况,还建议改进JSF生成的标签。 关于NoSQL根据调查数据,使用Java EE技术的开发者中,有32.1%的开发者使用NoSQL,对于Java EE中NoSQL相关标准应该是什么样的,有46%的开发者认为应该基于JPA,有32.5%的开发者认为应该有一个新的API,还有16.2%的开发者认为只需一个简单的键值存储API即可。图3 调查表2(2) 根据调查,对 Java EE 8 的新特性提出了一些设想与展望:改进 CDI(Contexts and Dependency Injection for Java EE,上下文与依赖注入)。Java EE 8 应该支持所有 JSF 组件,包括转换器和验证器,以及 JASPIC 组件;更深入的修剪 Pruning()和 Deprecating(弃用)。应该延续 Java EE 6 和 Java EE 7 修剪与弃用的步伐,比如可以修剪 EJB 编程模型相关的所有东西;标准化的缓存 API。JCache 缓存 API 原本将包含在 Java EE 7 中,但由于该 API 错过了重要的公共审查的最后期限,导致其没能成为 Java EE 7 的一部分;平台范围内的配置。Java EE 应用程序可以使用部署描述文件(比如 web.xml)进行配置,但该方法对于不同的开发阶段(如 DEV、BETA、LIVE 等)来说比较麻烦,因为不同阶段会对应不同的服务器,从而导致配置也要随之改变。 期望 Java EE 8 能够以一种彻底的、统一平台的方式来解决这些配置问题;综合的现代化的安全框架。在 Java EE 中,安全一直是一个棘手的问题。缺乏整体和全面的安全框架是Java EE 的主要缺点之一,尤其是在讨论或评估竞争框架(如 Spring)时,这些问题会被更多地提及。期望在 Java EE 8 中,能够构建一个综合的和现代化的安全框架。4 第三方开源Java EE框架(1)Struts 2Struts 2是一个可重用的MVC 2设计框架。Struts 2框架由3部分组成:即核心控制器、业务控制器和用户业务逻辑组件。基于Action的Struts 2框架把Servlet和JSP组件整合在一起,把用户的页面请求和处理分拆成处理逻辑和表现逻辑,让它们各司其职。这就是业界流行的所谓MVC模式(模型-视图-控制器),SUN给其取名为MVC Model 2.优点和缺点:架构清晰,工作流程明了,体系结构模块化,使用容易,开发效率高高等许多优点,当然,Struts框架也有一些不足之处。如对事件支持不够,对Servlet容器过于依赖,类型转换不够灵活,JSTL和EL表达式语言在Collection和索引属性处理方面功能较弱等。(2) HibernateHibernate正是一个开源的、成熟的对象关系映射(ORM)框架,它对JDBC进行了轻量级的对象封装,使开发人员可以使用对象编程思维来操纵数据库。Hibernate不仅提供从Java类到数据库表之间的映射,还提供了完善的数据查询和事务管理方法,可以大幅度缩短单纯使用JDBC处理数据持久化的开发效率,节约开发成本。图4 Hibernate工作原理图(3)SpringSpring 框架是由Rod Johnson创建的、为解决企业应用程序开发复杂性而设计的一个优秀开源框架。Spring框架的主要优势之一是其分层架构,允许使用者自主选择组件,并为 Java EE企业级应用开发提供集成的框架。Spring突破传统Java EE企业应用开发效率低、运行成本高的缺陷,作为开源中间件,它独立于各种应用服务器,甚至无须应用服务器的支持也能提供应用服务器的功能。如声明式事务、事务处理等。Spring致力于Java EE应用的各层解决方案,而不是仅仅专注于某一层的方案。它贯穿表现层、业务层及持久层,提供企业应用开发的一站式解决方案。不过,Spring也并不想取代那些已有的框架,而是与它们无缝地整合。特性: 1轻量级:完整的Spring框架可以使用一个大小只有1M多的JAR包发布,而且它所需的处理开销很小,而且是非侵入式的(Spring应用中的对象不依赖于Spring的特定类);2控制反转与松耦合:Spring通过一种所谓控制反转(IoC)技术实现松耦合。与JNDI相反,IoC不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它;3面向切面编程(AOP,又称为面向方面): Spring提供对面向切面编程的良好支持,允许通过分离应用的业务逻辑与系统级服务(如日志、审计、事务管理)进行内聚性的开发;4轻量级容器: 在某种意义上Spring也是一种容器,它提供对应用对象的配置和生命周期管理,可以配置每个bean如何被创建以及它们之间的关联。 Spring容器不同于传统的重量级EJB容器那样庞大而笨重;5框架集成:作为一个框架,Spring可以将简单的组件配置、组合成为复杂的应用。应用对象可以被声明式地组合。Spring也提供了很多基础功能(如事务管理、持久化框架集成等)。Spring并不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度。Spring提供了对各种优秀框架(如Struts、Hibernate、Hessian、Quartz)等的直接支持。(4)其它框架简介iBATIS相对Hibernate和Apache OJB等一站式ORM框架而言,iBATIS是一个半自动化的ORM实现。GuiceGuice是2007年Google发布的一个开源项目,是为Java5和后续版本而设计的新一代、轻量级JavaEE容器,基于类似Spring的依赖注入(IoC)机制,提供多种方式的依赖注入支持,采用动态注入方式也提高了运行效率和灵活性。Guice非常小而且快。一般认为Guice比Spring快十倍,也有说快百倍的。部分人甚至认为,Guice完全可以替代spring,因为对于DI组件框架来说,性能致关重要。OperaMasks SDKOperaMasks是我国金蝶中间件有限公司推出的一个所谓开箱即用的Web开发解决方案。它是一套完整的Web开发平台,包含了运行期平台OperaMasks SDK与集成开发环境OperaMasks Studio。Op

温馨提示

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

评论

0/150

提交评论