为了在会话中保留用户的基本信息(安全角色,个人数据等等),我创建了一个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:对不起,我不是母语为英语的人
答案 0 :(得分:2)
我想知道在每个支持bean中注入该会话bean的引用是不是一种坏习惯。
不是。它完成你想要的工作。只有其他方式可以通过ExternalContext#getSessionMap()
或Application#evaluateExpressionGet()
手动抓取。但这些方式并不具有说服力,因此不太好[&34;实践。