不掌握CDI注入(JSF)

时间:2018-03-21 09:09:21

标签: jsf cdi

我有2个类,LoginLookup(请求范围)和AppLogin(会话范围)。我想只生成一次令牌,并在调用LoginLookup.authenticate()方法时将值存储在我的AppToken实例中。由于AppToken类是用会话范围定义的,我假设每次注入这个类的实例时我会得到相同的实例吗?我希望我可以简单地使用@Inject AppToken appToken;获取会话作用域实例的行但我得到了不同的实例?我显然没有掌握整个CDI的事情,也许我根本不应该使用CDI?

代码如下所示。

import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
@Named
@RequestScoped
public class LoginLookup {
    @Inject
    private AppToken appToken;
    public String authenticate() {
        if (appToken.getToken() == null) {
            appToken.setToken(newTokenvalue);
        }
    }
}

import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
@Named
@SessionScoped
public class AppToken {
private String token;
    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }
}

0 个答案:

没有答案