会话作用域 Bean Spring 多个用户具有相同的实例
Session Scoped Bean Spring multiple user having same instance
我正在使用 spring mvc 3.2.3 开发 Web 应用程序。
我的调度程序中描述了一个会话范围的 bean-servlet.xml 为:
<bean id="domainCountBean" class="com.count.beans.CountSelectionBean" scope="session">
<aop:scoped-proxy/>
</bean>
然后我想在控制器中使用它:
@Controller
@RequestMapping("/")
public class DomainController {
@Autowired
CountSelectionBean domainCountBean;
.....
@RequestMapping(value = "/manual_domain/ajaxSet/", method = RequestMethod.GET)
public ResponseEntity<String> ajaxSetResetApprovalId(
HttpServletRequest req, HttpServletResponse res
) {
domainCountBean.getDeselectedIds().put(idStr, appId);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.add("Content-Type", "text/html; charset=utf-8");
return new ResponseEntity<String>(jsonString, responseHeaders, HttpStatus.CREATED);
}
当我从浏览器 A 登录到我的 Web 应用程序并使用 domainCountBean 时,似乎已正确存储在会话中。
同时,如果我尝试使用来自浏览器 B 的不同用户登录:并使用 domainCountBean,那么我将获得用户从浏览器 A 插入的值。反之亦然。
我正在努力为提到的 bean 保留两个不同的实例。
我想如果我的概念是错误的,或者可以解决我的问题。
P.S: 我不能在这里使用sessionAttribute
问题已通过将 "session" 作用域分配给控制器解决。
@Controller
@Scope("session")
@RequestMapping("/")
public class DomainController {
@Autowired
CountSelectionBean domainCountBean;
尽管根据定义,我认为它应该在没有控制器会话范围的情况下工作。
我正在使用 spring mvc 3.2.3 开发 Web 应用程序。
我的调度程序中描述了一个会话范围的 bean-servlet.xml 为:
<bean id="domainCountBean" class="com.count.beans.CountSelectionBean" scope="session">
<aop:scoped-proxy/>
</bean>
然后我想在控制器中使用它:
@Controller
@RequestMapping("/")
public class DomainController {
@Autowired
CountSelectionBean domainCountBean;
.....
@RequestMapping(value = "/manual_domain/ajaxSet/", method = RequestMethod.GET)
public ResponseEntity<String> ajaxSetResetApprovalId(
HttpServletRequest req, HttpServletResponse res
) {
domainCountBean.getDeselectedIds().put(idStr, appId);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.add("Content-Type", "text/html; charset=utf-8");
return new ResponseEntity<String>(jsonString, responseHeaders, HttpStatus.CREATED);
}
当我从浏览器 A 登录到我的 Web 应用程序并使用 domainCountBean 时,似乎已正确存储在会话中。
同时,如果我尝试使用来自浏览器 B 的不同用户登录:并使用 domainCountBean,那么我将获得用户从浏览器 A 插入的值。反之亦然。
我正在努力为提到的 bean 保留两个不同的实例。 我想如果我的概念是错误的,或者可以解决我的问题。
P.S: 我不能在这里使用sessionAttribute
问题已通过将 "session" 作用域分配给控制器解决。
@Controller
@Scope("session")
@RequestMapping("/")
public class DomainController {
@Autowired
CountSelectionBean domainCountBean;
尽管根据定义,我认为它应该在没有控制器会话范围的情况下工作。