Seam轻松实现在线用户统计,看我的简单方法
@Name("currentUserInfo")
@Scope(ScopeType.SESSION)
@AutoCreate
public class CurrentUserInfo {
private OnlineUserInfo userInfo;//当前用户
@In
List<OnlineUserInfo> onlineUsers;//当前在线用户列表
@Factory(value = "onlineUsers", scope = ScopeType.APPLICATION, autoCreate = true)
public List<OnlineUserInfo> getOnlineUsers() {
return new ArrayList<OnlineUserInfo>();
}
/**
* 对登录成功的用户进行初始化
*/
@Observer("org.jboss.seam.security.loginSuccessful")
public void loginSuccessful() {
//...
if (!onlineUsers.contains(userInfo)) {
onlineUsers.add(userInfo);//添加登录成功的用户到在线列表
}
}
@Destroy
public void destroy() {
//当前用户退出
if (userInfo != null) {
onlineUsers.remove(userInfo);
}
}
}