将JBoss Seam中的anotations更改为CDI(JEE6)

Wil*_*ez 5 jboss seam cdi java-ee-6

我们正在将我们的应用程序从JBoss Seam迁移到CDI(JEE6),所以我们正在改变一些像@In和@Out这样的分析,我们发现有很多信息对我们有帮助,但是我们有一些麻烦试图找出如何更换具有特定模式的anotations:

对于@In anotation

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

我们可以使用CDI中的@Inject,但是如何为这种情况设置上下文变量的名称?

对于@Out anotation

@Out(scope = ScopeType.SESSION, value = "autenticadoPOJO", required = false)
Run Code Online (Sandbox Code Playgroud)

我已经阅读了一些博客,他们说我可以在CDI中使用@Produces,我们如何在添加此anotation之前或之后设置范围?

我感谢任何帮助或任何有用的文档.

uaa*_*oti 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() {
   ...
}
Run Code Online (Sandbox Code Playgroud)