【发布时间】:2014-08-30 02:45:39
【问题描述】:
我有一个控制器和一个生产者。
@Named
@SessionScoped
public class UserController{
private User user;
//other methods
@Produces
@User
public User produceUser() {
return user;
}
}
如果我将用户注入 Servlet,我总是会得到相同的用户(我比较了对象 ID)——也在不同的会话中。如果我在 CDI Bean 中注入用户,它就可以工作并且我得到当前会话的用户。
【问题讨论】:
-
对 CDI 不是很熟悉,但是 servlet 在许多不同的会话中都存在;你要么需要注入一个选择当前用户的代理,要么注入一个 UserService
-
请提供更多信息。你在运行什么容器?什么版本的 CDI 等?
-
你能展示你如何创建一个用户对象和带有注入点的servlet吗?
标签: java servlets cdi session-scope producer