为了在会话中保留有关用户的基本信息(安全角色、个人数据等),我创建了一个AppSession bean,我想知道在每个支持bean中注入该会话bean的引用是否是一种糟糕的做法。
例如,在请求范围内的bean中不是这样:
@ManagedBean
@RequestScoped
public class MyRequestBean {
@ManagedProperty("#{appSession.user}")
private User user;
@ManagedProperty("#{appSession.roles}")
private Roles[] roles;
}
我想要这样的。。。
@ManagedBean
@RequestScoped
public class MyRequestBean {
@ManagedProperty("#{appSession}")
private AppSession appSession;
}
并使用appSession检索用户和角色数据。
你怎么看,这里有一些不好的做法吗?
PS:对不起,我不是以英语为母语的
我想知道在每个支持bean中注入该会话bean的引用是否是一种糟糕的做法
事实并非如此。它能完成你想要的工作。唯一的其他方法是通过ExternalContext#getSessionMap()
或Application#evaluateExpressionGet()
手动抓取它。但这些方法并不是陈述性的,因此是一种"不太好"的做法。