JAVA高级:EJB3.0的架构和新增特点

转帖|其它|编辑:郝浩|2008-10-27 11:42:19.000|阅读 1240 次

概述:Java EE技术使用多层结构对企业应用提供服务, Java EE应用是WEB使能的和基于JAVA的,这意味着他们写一次和配置到任何支持Java EE标准的容器。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  1.EJB 3 architechure

  Java EE技术使用多层结构对企业应用提供服务, Java EE应用是WEB使能的和基于JAVA的,这意味着他们写一次和配置到任何支持Java EE标准的容器。一个应用服务器是容器驻扎的环境,然而,实践中我们不需要区分应用服务器和容器,所以我们将使用术语interchangeably。The Java EE 规范受到商业厂家Sun、IBM、Oracle、BEA Systems及开源组织JBoss支持。

  Java EE 表现层技术包括servlets、JSP pages、and JSF组件。这些为一个商务应用开发、然后配置和运行在一个WEB容器里,一个客户将通过浏览器或applet与WEB容器交互。EJB3是 Java EE 5提供给商务层的技术。在Java EE 5我们将把商务层分成只考虑商务过程的第一层和处理持久性的第二层。在EJB 3 商务过程方面是session and message-driven beans。这些为一个商务应用开发并且配置和运行在一个EJB容器里。持久层方面是一个实体;它通过使用持久供给者或持久引擎连接到数据库, 持久引擎实现了另一个规范JPA(the Java Persistence API),全部的规范能够从http://www.jcp.org/en/jsr/detail?id=220下载。

  2.EJB 3 新特点

  EJB 3引入的主要新特点总结如下:

  a.简化的Persistence API

  b.元数据注释(Metadata Annotations)

  c.改进了的Query Language

  d.Defaulting的使用

  e.依赖注入(Dependency Injection)

  f.Session Beans的简化

  头两个特点可能最为重要,EJB 3和EJB 2.x主要的不同是持久性的保持。EJB 3以前的版本只具有相当有限的在实体beans和关系表之间的对象/关系映射。EJB 3以前继承和多样性是不可能的, 一个EJB 3实体真正是一个Java对象,这不能说成是一个实体bean。

  其他主要EJB 3创新是引入了metadata annotations,Metadata annotations是在Java SE 5中第一次引入, 所以当开发EJB 3应用时必须使用Java SE 5或更高版本,Metadata annotations能够用做替换XML deployment descriptors,两者都可用做配置EJB组件和指定对实体的对象/关系映射。不管怎样,deployment descriptors也能用于配置EJB组件和指定对实体的对象/关系映射。

  EJB Query language (EJB QL)早期版本和JPA's JPQL相比是相当有限的。特别地,JPQL 提供以下增强特性:

  a.Projections

  b.GROUP BY and HAVING clauses

  c.Joins

  d.Subqueries

  e.Dynamic Queries

  f.Queries with parameters

  g.Bulk update and delete operations

  在EJB3 缺省值得到延伸,例如,大多数元数据注释不需要指定元类型和参数,缺省值常常是公共的、希望的行为。注释元数据类型仅当我们要配置exceptional 行为时才需要。

  依赖注入,Spring中的第一个特性,在EJB3 中引入用于替换JNDI,实现容器管理资源的查找。

  Session beans已经得到简化,我们不再需要指定组件和home接口。而且session bean 类不再实现大量的应用并不需要的callback接口。在EJB 3这些生命周期callback方法仅当需要时由session beans实现。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:IT专家网论坛

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP