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

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

时间2025-06-21 01:32:47分类IT科技浏览4416
导读: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
windows7无法连接到sens,作为管理员(Windows 10无法连接到SENS服务)