我看过JBoss的JSR-299上下文和依赖注入的焊接参考实现,我想知道其他CDI实现如何相互比较。 具体来说,我了解Weld,Resin CanDI(由Caucho)和Apache OpenWebBeans。
答案 0 :(得分:10)
主角的快速概述:
所以,如果我在编写本文时必须选择一个实现,我会选择RI(即Weld),因为它已经准备好并可以“独立”使用(准备并不意味着它已被广泛使用)
如果你正在寻找一些性能比较(你还想比较什么?),我认为你现在不会找到这样的基准。
无论如何,如果你想使用CDI,那就去做吧。
答案 1 :(得分:4)
实际上,我已经在一个真正的生产政府项目中使用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
答案 2 :(得分:1)
目前他们没有比较。我怀疑它们中的任何一种都已用于生产,它们太新鲜了。
答案 3 :(得分:1)
只要关注CDI规范,我希望RI之间没有任何功能差异。 查看此文章:Understanding Java EE 6 and CDI
答案 4 :(得分:0)
我会说相反;)但这两个项目都是出色的工具,并提供不同的应用程序服务器。关键是两者都遵循Java EE规范,并在编程灵活性和重用方面提供了令人难以置信的能力。