Gavin King 发布了即将面世的 Web Beans( JSR 299 )规范的 4 部分预览( 1 , 2 , 3 , 4 )。Web Beans 由 JBoss 发起,旨在填补在 JEE 5 中 Web 层和事务层之间的断层。JSR 的成员包括 Sun、Oracle 和 Google。King 表示该组件模型深深地受到了 Google Guice 和 Seam 的影响。
本系列的第一部分对该技术进行了介绍:
……Web Beans 是与两个层中的技术都兼容的组件模型。Web Beans 能与 JSF 和 EJB3 都集成,允许 EJB3 会话 Bean 扮演 JSF 管理 Bean,这样就统一了两个组件模型。此外,Web Beans 提供了会话模型和持久化上下文管理,因而解决了状态管理问题以及影响 JSF 和 JPA 的最优化事务管理问题……Web Beans 是包含业务逻辑的应用组件。Web Beans 可以被 Java 代码直接调用,或通过统一 EL 被调用。Web Beans 可以访问事务性资源。Web Beans 间的依赖自动的被 Web Beans 容器管理。大多数 Web Beans 是有状态和上下文相关的。Web Beans 的生命周期总是被容器管理……
本系列的第二部分涵盖了规范的注入、绑定标注和组件类型。支持的注入类型包含:
- Direct Field
- Method
- Constructor
- Parameter
本系列的第三部分提供了通过XML 替代标注声明组件的例子。最后, King 论及了作用域、上下文和解析器方法。可用的作用域如下:
- @RequestScoped
- @SessionScoped
- @ApplicationScoped
- @ConversationScoped
正如被期望的,如此数量庞大的内容已有了相同数量级的评论。其中一个较为有趣的言论是:
在过去的几年间,有非常多的言论谈及 Interface 21 或许应该正式推动 Spring 框架成为 JEE 规范的一部分——只要 Rod Johnson 正式宣布对 JEE 6 的支持,这似乎是有可能的……嗯,看起来“疯狂的”Bob Lee 和 Guice 背后的团队可能已经找到了让自己抢先挤入这场聚会的后门——根据关于即将面世的 Web Beans 的新一系列的文章来看,新规范的确被 Seam 和 Guice 联合影响了……我发现这些文章有趣之处在于 Google 明显采用了 JBoss 的方式去支持 JCP——那就是,创建一个独立的产品填补 JEE 规范中的一整块,然后利用 JCP 使那个产品成为规范本身(JPA 就是前车之鉴)……
类似的评论可在这些文章本身中找到:
非常有趣——其中与 Seam 有明显的联系,但这是我第一次看到任何与 Guice 团队有牵连的东西……我不得不怀疑“Web Beans”这一术语是否准确……
King 针对它的回答:
Seam 可能最终将分成两层:1) 核心组件引擎,它将发展成 Web Beans RI 2) 框架层,它将提供所有的内置组件、JSF 组件等等……Bob 为这个规范已经贡献了极大的努力和心血。
查看英文原文: Gavin King Provides Web Beans Preview (JSR 299) Featuring Guice Inspired Dependency Injection
评论