问题 Java EE 6 CDI实现之间的差异


我查看了JBoss的JSR-299上下文和依赖注入的焊接参考实现,我想知道其他CDI实现如何相互比较。 具体来说,我了解Weld,Resin CanDI(由Caucho)和Apache OpenWebBeans。


10813
2018-02-16 02:58


起源



答案:


主角的快速概述:

  • 焊接是  RI(只有一个RI),版本1.0已经出来,它内置于GlassFish v3和即将推出的JBoss AS EE 6中,但也可以用于 其他容器 (有一些限制)。
  • OpenWebBeans仍在开发中,版本1.0.0是 计划 2010年4月底。
  • Caucho CanDI似乎与Resin有关(我可能在这里错了,但我在他们的网站上找不到任何相反的明确证据,无论如何这都是坏事)。

因此,如果我在编写本文时必须选择一个实现,我会选择RI(即Weld),因为它已经准备好并且可以“独立”使用(准备并不意味着它已被广泛使用)。

如果你正在寻找一些性能比较(你还想比较什么?),我认为你现在不会找到这样的基准。

无论如何,如果你想使用CDI,那就去做吧。


9
2018-02-16 06:43



现在你对OWB和WELD有什么想法,现在两者都有点成熟了。我听说OWB更快?我怎么想? - Thang Pham
是的,OWB更快。那里有一些基准。它也更具可扩展性 - Dar Whi


答案:


主角的快速概述:

  • 焊接是  RI(只有一个RI),版本1.0已经出来,它内置于GlassFish v3和即将推出的JBoss AS EE 6中,但也可以用于 其他容器 (有一些限制)。
  • OpenWebBeans仍在开发中,版本1.0.0是 计划 2010年4月底。
  • Caucho CanDI似乎与Resin有关(我可能在这里错了,但我在他们的网站上找不到任何相反的明确证据,无论如何这都是坏事)。

因此,如果我在编写本文时必须选择一个实现,我会选择RI(即Weld),因为它已经准备好并且可以“独立”使用(准备并不意味着它已被广泛使用)。

如果你正在寻找一些性能比较(你还想比较什么?),我认为你现在不会找到这样的基准。

无论如何,如果你想使用CDI,那就去做吧。


9
2018-02-16 06:43



现在你对OWB和WELD有什么想法,现在两者都有点成熟了。我听说OWB更快?我怎么想? - Thang Pham
是的,OWB更快。那里有一些基准。它也更具可扩展性 - Dar Whi


实际上,我已经在一个真正的生产政府项目中使用OpenWebBeans,以及一个完整的EE6 Web Profile环境。但是我不会告诉你哪里,所以它不能被删除;)(顺便说一句,准备大多数EE-6部分,例如EL-2.2集成目前需要很多小补丁和调整才能起步 - 但它真的很有前途!)

事实上,Weld和OpenWebBeans社区经常互相沟通,因此每当我们点击规范中没有明确列出的内容时,我们都会尝试讨论问题。因为涉及的Caucho家伙Ferg和Reza都只是简单地说java神,我敢打赌他们的实现也非常好;)

至于OpenWebBeans:我们目前正在准备Milestone4版本,该版本将在下周发布。 openwebbeans-impl又名'owb-core'几乎没有依赖关系! 所有“较重”的依赖项都由插件插件处理,如果可用的话,这些插件会自动从类路径中获取。在涉及与其他EE部件的交互时,它们涵盖了规范的某些部分。有像openwebbeans-jsf,openwebbeans-jms,openwebbeans-resource(处理EE资源+ JPA)等插件。

顺便说一句:不要错过编写自己的便携式的简单方法! CDI扩展。

为了获得第一个想法,你可能会看一下 Seam3:anonsvn.jboss.org/repos/seam/modules/ 而且当然 Apache MyFaces CODI:github.com/struberg/myfaces-ext-cdi (很快就会转移到Apache MyFaces SVN)

LieGrue, STRUB


4
2018-02-26 18:50



现在你对OWB和WELD有什么想法,现在两者都有点成熟了。我听说OWB更快?我怎么想? - Thang Pham
一个小小的更新。 Apache MyFaces CODI在此期间确实达到了1.0.0。更多信息可以在官方网站上找到: myfaces.apache.org/extensions/cdi/index.html - struberg


目前他们没有比较。我怀疑它们中的任何一种都已用于生产,它们太新鲜了。

  • Weld应该是  参考实现,因为它是与规范领导者密切合作开发的 - Gavin King(来自JBoss)
  • 就个人而言,我更喜欢OpenWebBeans,因为它具有更清晰的代码,但在使用它时并不重要。

1
2018-02-16 06:08





只要涉及CDI规范,我希望RI之间没有任何功能差异。 查看这篇文章: 了解Java EE 6和CDI


1
2018-02-17 05:21





我会说相反;)但这两个项目都是很好的工具,并提供了不同的应用程序服务器。关键是两者都遵循Java EE规范,并在编程灵活性和重用方面提供令人难以置信的能力。


0