5

アプリケーションを JBoss Seam から CDI (JEE6) に移行しているため、@In や @Out などのアノテーションをいくつか変更しています。役立つ情報はたくさんありますが、置換方法を見つけるのに苦労しています。特定のパターンの注釈:

@In アノテーションの場合

@Name("comprobantes")//context name
...
@In(create=false,value="autenticadoPOJO",required=false)
    private UsuarioPOJO autenticadoPOJO;

CDI から @Inject を使用できますが、この場合のコンテキスト変数の名前を設定するにはどうすればよいでしょうか?

@Out アノテーションの場合

@Out(scope = ScopeType.SESSION, value = "autenticadoPOJO", required = false)

いくつかのブログを読んだことがありますが、CDI で @Produces を使用できると書かれており、この注釈を追加する前または後にスコープを設定するにはどうすればよいですか?

ヘルプや役立つドキュメントに感謝します。

4

2 に答える 2

2

http://docs.jboss.org/weld/reference/1.0.0/en-US/html/producermethods.html

8.1. プロデューサー メソッドのスコープ

プロデューサー メソッドのスコープはデフォルトで @Dependent に設定されるため、コンテナーがこのフィールドまたは同じプロデューサー メソッドに解決される他のフィールドを注入するたびに呼び出されます。したがって、ユーザー セッションごとに PaymentStrategy オブジェクトの複数のインスタンスが存在する可能性があります。

この動作を変更するには、メソッドに @SessionScoped アノテーションを追加します。

@Produces @Preferred @SessionScoped
public PaymentStrategy getPaymentStrategy() {
   ...
}
于 2012-04-12T01:25:13.173 に答える