java ee开发三剑客现状及发展浅析 -尊龙游戏旗舰厅官网
jsf 2.0
尽管 java 在展示层框架上竞争的非常激烈,但 jsf 仍然固守着自己的领地。虽然有很多关于 jsf 的易用性和健壮性的质疑声,但 jsf2.0 就是为正面解决这些问题而提出来的,它的易用,创新以及可扩展的特性包括:
jsf 正式将 facelets 作为视图技术。也许你不熟悉 facelets ,它也是一个与 jsf 结合默契的开源视图技术。因此, 与 jsp 不同的是 facelets 更适合 jsf 的组件模型以及生命周期的概念。当然,也许 facelets 最强大的特性就是在 用 mark-up 来代替 java 代码创建自定义的组件。创建自定义组件的复杂度也许是开发者对 jsf 抱怨最多的地方了。
jsf2.0 通过使用标签为 java ee 5 提供了基于 annotation 驱动的配置特性(比如说可以使 用 @managedbean 和 @managedproperty )。这也意味着可以一定程度上的减少 faces-config.xml 文件的 大小,不过像在 navigation 这些结点的配置在 xml 文件还是不能少。
jsf2.0 为适应 ajax 而改变了自身的生命周期,只需要局部页面的交由 ajax 事件处理。这个特性使得 jsf ajax 的组合更加自然。
jsf2.0 现在内置了优秀的资源处理器。对 images , javascript 文件以及 css 样式等都表现出众。它可以对通过逻辑名称,资源分组以及版本等方式来更好的引用资源。
除上述特性外, jsf2.0 还包括许多其它方便的改变。比如说支持事件,支持 rails_env 的开发风格 ( 就是 ror) ,支持对标准组件集进行扩展。
ejb 3.1
ejb 在 java ee 5 就已经经历过了非常大的改动。也许看似不可能,但实际上 ejb3.0 还是在社区中广泛得到认可,并且采纳它的 人也在不断增长。而这一切也许是因为我们过度的认为需要怎么怎么简化 java ee 5 才取得这样的成绩。比如说,对 jboss seam 的兴趣 和 glassfish 的热情都是重要的关键因素。 ejb3.1 的目标就是在增加业务组件时,继续让 ejb 变得尽可能简单。下面是 对 ejb3.1 特性的高度概括:
原本需要甚至实现 session beans 的业务接口变得可选了,不再强迫要求实现。在使用 session beans jsf webbeans 的场景下尤其有用。
ejb3.1 增加了 singleton beans 的概念。因为人们更倾向于管理共享的应用程序状态,需要保证是完全线程安全的模型。此外, ejb3.1 新增的声明式的并发控制也更加灵活。
ejb3.1 一个可圈可点的的强大特性就是支持 cron 风格的 scheduling .除目前基于 timer api 的调度计时器外,声明式和编程式的 cron 风格的 scheduling api 也加入了进来。
另一个强大的特性就是可以通过使用 @asynchronous 标注来对 session bean 的方法进行异步调用。你甚至还通过它来控制异步 ejb 方法从而返回一个 java.util.concurrent.future 对象。
ejb3.1 lite 概念的逐渐引入形成了一个 ejb api 的子集,并在 web profile 中得到应用。只不 过 ejb lite 包含了像事务处理和安全这样的特性,而那些消息机制,远程调用以及 scheduling 等非必须的自然没有必要加入其中。除上 述列表所述特性外,ejb3.1 的特性还包括:括直接将 ejb 打包成 war 文件,可运行在 embedded 的容器中便 于 java se 环境进行 junit 测试,使用统一的标准化全局 jndi 命名方式。
jpa 2.0
到 java ee 6 的时候, jpa 已经彻底从 ejb 中分离,形成自己的体系 (ejb3.0 已经将 jpa 分离出去 了 ) . jpa 的成功是毫无疑问的。它广泛得到社区的采纳和一流供应商的支持。本来我们担心 ejb2.* 的 enity beans 垮台可能 无法让 java ee 再次引领持久层的标准,一个重要成功的因素就是 gaving king 和 jboss 社区毫不含糊的支 持。 jpa2.0 的目标就是要在这次成功的基础上再接再厉,填补更多的空白,再创多的创新:jpa2.0 加入了大量必须的 orm 映射增强特性, 包括:支持通过使用 @elementcollection 标注来增强 collections, maps 和 lists( 这里不是指实体之间的 关联关系 ) 集合,支持 map 的单向 one-to-many 关联 (jpa1.0 只允许双向 one-to-many 关联 )
entitymanager 和 query api 都得到改进。比如说,现在可以从结果集中直接取得第一条记录 (jpa1.0 只允许从一 个 unique 结果集中反回单个记录 ) ,指定 query 结果集的最大值,访问各个供应商的底层实体对象 manager 或 query , 最后就是加入悲观锁 (jpa1.0 只支持乐观锁 )
jpql 也提供类似于 sql 的 case , nullif , coalesce 等函数 jpa2.0 应广大开发者要求增加了 criteria api .
要是你对 hibernate 或 toplink 的 criteria api 不熟悉的话,可以将它想像成一个以 java 为中心的面向对 象,线程安全并可以与 jpql 划上等号的一组 api .这组 api 适合于编写复杂的动态查询语句,还可避免解析 jpql 语句时,所抛出的运 行期异常。
更完整的 jap2.0 特性还包括:标准的二级缓存,标准的 jdbc properties ,指定超时时间等等。转载于:https://www.cnblogs.com/rambol/archive/2009/02/27/1399647.html
总结
以上是尊龙游戏旗舰厅官网为你收集整理的java ee开发三剑客现状及发展浅析的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: