4

Seam 3を調べたところ、Seam Solderを使用する@Namedと、パッケージにアノテーションを適用できることがわかりました。この場合、このパッケージ内のすべてのBeanは、@Named自分自身で修飾されているかのように自動的に名前が付けられます。私はこのようなことをすることにあまり利点は見られませんでした(そしてそれが役立つかもしれないいくつかの状況を私に指摘することができます!)パッケージにも適用される修飾子は、この修飾子と同じセマンティクスを維持します@Namedか?CDI仕様の将来のバージョンで可能な機能ですか?それを許可しない理由はありますか?

4

1 に答える 1

1

私はこのようなことをすることにあまり利点を見ませんでした(そしてあなたはそれが役に立つかもしれないいくつかの状況を私に指摘することができます!)

@Named(ご存知のとおり)JSFページ内からマネージドBeanにアクセスできるようにします。パッケージレベルで適用すると、そのパッケージ内のすべてのBeanにEL名が割り当てられるだけです。これは確かにキラー機能ではないことに同意しますが、特定のパッケージ内のすべてにEL経由でアクセスする必要がある場合が非常に多いと想像できます。もちろん、すべてのBeanに個別に注釈を付けることが、読みやすさの点で優れているとは限らないかどうかは、別の問題です。

この@Named修飾子と同じセマンティクスを維持しながら、任意の修飾子をパッケージにも適用できるようにすることは、CDI(またはSeam Solder)にとって合理的ではないでしょうか。

@SomeQualifierパッケージ内のすべてのBeanに同じ修飾子を適用します。これ@Namedがあまり意味をなさないことは想像もできません。昨年のいくつかのCDIプロジェクトを振り返ると、その中のすべてのBeanが同じ修飾子を必要とするパッケージはなかったと思います。修飾子がコンポーネントの緩い結合を意図していることを覚えているなら、一種の意味があります...(3つの実装を持つインターフェースがあるとしましょう-ほぼ確実に、それらは異なるパッケージまたはjarに属します)

于 2011-09-08T07:46:49.560 に答える