这是我的SessionScoped托管bean:
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("clientSessionBean")
@SessionScoped
public class ClientSessionManagedBean implements Serializable {
...
}
这是我的requestcoped托管bean
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
@Named("myBean")
@RequestScoped
public class MyManagedBean {
@Inject
private ClientSessionManagedBean clientSessionBean;
..
}
值clientSessionBean
给了我null
。
如何在requestcoped托管bean中注入sessionScoped bean?
包裹有问题吗?
答案 0 :(得分:1)
在构造函数运行后,即在@PostConstruct
及更长时间内,只能使用注入的资源。来自JSR-250的规范文档:
PostConstruct注释用于需要执行的方法 依赖注入完成后执行任何初始化
正如您应该能够从上面的摘录中推断出,bean生命周期中的事件序列是:
初始化即调用构造函数(实际机制更复杂,但归结为此)
进行注射
调用生命周期回调,即@PostConstruct
。在这一点上,您可以使用在#2中创建的任何内容
相关