首页IT科技gavinkevin手机(Gavin King 谈 JSR299 和 Weld 1.0 对 Java EE 与 JBoss 的影响)

gavinkevin手机(Gavin King 谈 JSR299 和 Weld 1.0 对 Java EE 与 JBoss 的影响)

时间2025-08-05 08:01:06分类IT科技浏览4996
导读:CDI现在使用JSR-330所定义的注解来声明注入点。这种影响是微乎其微的,因为330所使用的模型基本上与299大同小异。归结起来,只是注解名有所区别罢了。...

CDI现在使用JSR-330所定义的注解来声明注入点             。这种影响是微乎其微的             ,因为330所使用的模型基本上与299大同小异                  。归结起来                  ,只是注解名有所区别罢了       。

要知道330并没有定义完整的依赖注入方案          。它只定义了带有修饰符的注入点而已       ,其他的都没有定义                  。新的Managed Bean规范是JSR-299的工作成果(在规范的早期草案中我们称之为“简单Web Bean            ”)          。简单Web Bean支持依赖注入             、EL名字与拦截器          ,但却没有EJB那些编程约束       。

Managed Bean规范引起了很多争议                  ,Red Hat说我们确实需要支持普通Java类的注入          ,而其他EE涉众则表示对299定义这样一个新EE“组件                    ”的行径感到非常不爽                  。

经过多次讨论后       ,我们认为这种“简单      ”组件的想法应该自成一个规范                  ,以此构成所有其他EE组件编程模型的基础             ,包括EJB等等             。这是一个非常棒的愿景    ,我们都很赞同这个观点                   ,但EE 6并没有完全实现它    。

最后的结果是:CDI可以用在普通的Java类(现在叫做“Managed Bean         ”)以及EJB上                   。现在的EJB可以看作是一种特殊的Managed Bean                ,只不过有一些额外的编程约束和功能                。这种编程模型能够极大地降低新用户学习EE的曲线。我认为EE平台的未来发展方向是逐渐将EJB特有的功能通用化,将其应用在所有的Managed Bean上                。举个例子                ,为何不是所有的Managed Bean都支持@TransactionAttribute和@RolesAllowed呢?简直没有道理嘛                   。

然而EJB在为消息传输定义端点                  、远程与异步方法调用       、定时器等领域还是有一席之地的    。在这些情况下                   ,EJB生命周期模型还是非常有意义的             。在尽力透明化用户体验的过程中    ,我们从来都没有真正满意过                  。用户总是注意到何时在使用JSF的特性             ,何时在使用本应放在JSF中的Seam特性       。...我们相信大家都很渴望将这些技术用于Java

EE应用服务器之上                  ,或是以插件的形式使用          。通过增加更多的扩展点和服务供应商接口       ,其他技术就可以插件的形式用于平台实现了          ,这么做既整洁又高效                  ,对于

开发者来说使用起来也是非常简单的          ,就像是内置于平台上的设备一样                  。可移植的扩展可以通过如下方式与容器集成:

• 提供自己的Bean          、拦截器和装饰器          。

• 通过依赖注入服务将依赖注入到自己的对象中       。

• 为客户化的范围(custom scope)提供一个上下文实现                  。

• 通过外部注解增强或是提供基于注解的元数据             。CDI和JSF 2的出现预示了Seam的新方向    。

在Seam 2中       ,我们花费了巨大的精力填补JSF的漏洞                  ,结果造成了没有时间集成那些非常吸引我们的表示层技术                   。JSF 2可以让我们将精力放在其他领域中                。

最重要的是             ,CDI现在提供了一个核心“引擎                    ”    ,可以在所有的EE

6应用服务器之间移植                   ,甚至还可以用在Tomcat                  、Jetty和Resin上。该核心并不依赖于任何特定的表示层技术                。其所拥有的仅仅是为可移植扩展开

发者所提供的一套定义良好的SPI                   。该SPI作为整个生态系统的根基    。如果你是一位框架开发者                ,那现在就会明确要想将框架与CDI及EE环境集成起来(通

过扩展)需要做哪些事情             。这也许是CDI最令人激动的特性了                  。

Seam 3将成为一套CDI可移植扩展,可以用在任何应用服务器上并向CDI编程模型提供扩展                ,同时能与我们感兴趣的其他技术进行集成       。目前团队正与这些项目和平台(如ESB和SOA-P)紧密合作以确保新版Seam能考虑到其特定的需求          。重要的是                   ,一些项目已经认为Seam是其正确的选择    ,甚至都不用做任何修改             ,因此紧密与快速的集成要比想象的更容易一些                  。Red

Hat已经成功将Seam应用到其所开发的一些项目当中了          。CDI将Seam的核心功能放在了坚固的根基之上                  ,而我们对CDI的实现Weld是个更加专注

且测试良好的基础设施       。这意味着我们可以将Weld应用在Seam 2不适合的各种领域中       ,而这与构建Web站点无关                  。我们认为JCDI非常适合于事件驱动架构的Flex RIA             。JCDI应用非常整洁          ,尽管JBoss Seam提供了大量的特性                  ,但他们没必要再开发一个RIA前端了    。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
laplacian算子matlab程序(python中Laplacian算子如何使用)