我想在应用程序级别设置一个(登录用户的)Hashmap 对象。但无法对每个请求执行相同的操作,我保存在 Hashmap 对象中的旧用户列表正在刷新并仅返回当前登录的用户。 我尝试过很多例子但没有运气。 下面是我的代码
<bean id="applicationContextProvder" class="com.starter.basic.ApplicationContextProvider"/>
<bean id="testBean" class="com.starter.basic.TestBean"/>
TestBean tb = appContext.getApplicationContext().getBean("testBean", TestBean.class)
public class ApplicationContextProvider implements ApplicationContextAware
{
private static ApplicationContext context;
public ApplicationContext getApplicationContext() {
return context;
}
@Override
public void setApplicationContext(ApplicationContext ac)
throws BeansException {
context = ac;
}
}
public class TestBean implements ServletContextAware {
private HashMap hashMap = new HashMap<String ,String >();
}
public HashMap getUsers(){
return hashMap;
}
框架采用Spring MVC 3 + Hibernate 4.0
如果有人无法理解我上面的观点。我想做的是,如果某个用户已经登录并尝试从另一个设备再次登录,则应阻止用户。我应该在用户第二次登录时从 Hashmap 对象获取该用户。我可以从后端标志来做到这一点。但我的要求是使用应用程序上下文。
最佳答案
您应该为您的 bean 使用应用程序范围:
您应该在每次登录时将用户添加到 HashMap 中,并在每次注销时将其删除。
关于java - 无法在应用程序级别设置对象(HashMap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31740493/