4

ばかげた質問のように思えるかもしれませんが、私は本当に混乱しています。Seam 3 と Weld CDI は同じものですか? 「CDI (Weld) / Seam 3」に言及している投稿をいくつか読んでいますが、それらは同じものと見なす必要がありますか?

4

1 に答える 1

7

Seam 3 は CDI (JSR-299) に大きく依存しています。Weld はCDIのリファレンス実装です。一方、Seamは Web アプリケーションを開発するための完全なフレームワークであり、多くの機能を備えています (リンク内のモジュールのリストを参照)。

通常、CDI 実装は Java EE アプリケーション サーバーによって提供されます (たとえば、JBoss/Wildfly は Weld に同梱されています)。ただし、CDI の完全な実装は、Seam での使用に適しているはずです。この画像を参照してください。

ここに画像の説明を入力

したがって、あなたの質問に対する答えはノーですが、Weld (または任意の CDI 実装) は Seam で広く使用されています。「CDI(溶接)・継ぎ目」という記事をよく目にするのはこのためでしょう。

Seam 3 の実装が中止されたことに注意してください。これは、おそらく Java EE が長年にわたって改善されてきたためです。

これは、Seam プロジェクト ページからのWeldに関する情報です。

Weld は、JSR-299: Java Contexts and Dependency Injection for the Java EE platform (CDI) の参照実装 (RI) です。CDI は、依存性注入とコンテキスト ライフサイクル管理の Java 標準です。

また、このページには次の情報があります。

  • CDI は Java EE に含まれる JCP 仕様です。
  • Weld は CDI のリファレンス実装です
  • Seam 3 は、CDI を拡張して Java EE 6 が提供する以上の機能を提供するモジュールのセットです。

そして最後に、これはあなたに明確になるはずです:

ただし、Seam 3 は JSR-299 のスーパーセットです。JSR-299 を Seam 3 のコアと考えてください。これは、アプリケーション コンポーネントおよび Seam フレームワークを構成する組み込みコンポーネントの基本的なプログラミング モデルです。Weld は、このプログラミング モデルの実装です。

于 2013-05-20T11:38:10.477 に答える