gpt4 book ai didi

java - 无法在应用程序级别设置对象(HashMap)

转载 作者:行者123 更新时间:2023-12-02 04:29:01 25 4
gpt4 key购买 nike

我想在应用程序级别设置一个(登录用户的)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 使用应用程序范围:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-scopes-application

您应该在每次登录时将用户添加到 HashMap 中,并在每次注销时将其删除。

关于java - 无法在应用程序级别设置对象(HashMap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31740493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com