JBoss の Weld Reference Implementation of JSR-299 Contexts and Dependency Injection を見てきましたが、他の CDI 実装が互いにどのように比較されるかを知りたいと思っていました。具体的には、Weld、Resin CanDI (Caucho 作)、Apache OpenWebBeans について知っています。
5 に答える
主人公の簡単な概要:
- Weld はRIです (RI は 1 つだけです)。バージョン 1.0 がリリースされました。GlassFish v3 と今後の JBoss AS EE 6 に組み込まれていますが、他のコンテナーでも使用できます(いくつかの制限があります)。
- OpenWebBeans はまだ開発中で、バージョン 1.0.0 は2010 年 4 月末に予定されています。
- Caucho CanDI は Resin と結びついているようです (私はここで間違っているかもしれませんが、彼らの Web サイトで反対の明確な証拠を見つけることができませんでした。とにかく悪いことです)。
したがって、これを書いている時点で 1 つの実装を選択する必要がある場合は、RI (つまり Weld) を選択します。これは、準備ができており、「スタンドアロン」で使用できるためです (準備が整っているからといって、広く使用されているわけではありません)。
パフォーマンスの比較を探している場合 (他に何を比較しますか?)、現時点ではそのようなベンチマークは見つからないと思います。
いずれにせよ、CDI を使用する場合は、そのまま使用してください。
実際、私は、本格的なEE6 Webプロファイル環境とともに、実際に本番環境の政府プロジェクトでOpenWebBeansをすでに使用しています。しかし、どこにあるのかはわかりませんので、スラッシュドット効果はありません;)(ところで、EL-2.2統合など、ほとんどのEE-6パーツは、現在、実行を開始するために多くの小さなパッチと微調整が必要です。しかし、それは本当に有望に見えます!)
実際、WeldコミュニティとOpenWebBeansコミュニティは互いに頻繁に通信しているため、仕様に明確に記載されていないものにぶつかったときはいつでも、両者が話し合うようにしています。そして、関与しているCauchoの男であるFergとRezaはどちらも単にJavaの神と言われているので、それらの実装も本当に良いと思います;)
OpenWebBeansに関しては、現在、来週リリースされる予定のMilestone4リリースを準備しています。openwebbeans-impl aka'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、スタブ
CDI仕様に関する限り、RI間で機能的な違いがないことを願っています。この記事を確認してください:JavaEE6とCDIを理解する
現在、それらは比較されていません。それらのいずれかが本番環境で使用されているとは思えません。新鮮すぎます。
- Weld は、仕様リーダーである Gavin King (JBoss から) との緊密な協力の下で開発されているため、リファレンス実装であると想定されています。
- 個人的には、OpenWebBeans の方がコードがすっきりしている点で気に入っていますが、OpenWebBeans を使用する場合はそれほど重要ではありません。