会话范围Bean Spring多个用户具有相同的实例



我正在使用spring mvc 3.2.3开发web应用程序。

在我的dispatcher-servlet.xml中有一个会话作用域bean,描述为:

<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);
    }

当我登录到我的webapp从浏览器- a:和使用domainCountBean的东西似乎得到存储在会话正确。

同时,如果我尝试使用来自浏览器b的不同用户登录:并使用domainCountBean,那么我将获得用户从浏览器a插入的值。反之亦然。

我正在努力为提到的bean保留两个不同的实例。我想如果我的概念是错误的,或者可以解决我的问题。

p。S:我不能在这里使用sessionAttribute

通过将"session"作用域分配给控制器来解决问题。

@Controller
@Scope("session")
@RequestMapping("/")
public class DomainController {
    @Autowired
    CountSelectionBean domainCountBean;  

虽然,根据定义,我认为它应该没有controller的session作用域。

相关内容

  • 没有找到相关文章

最新更新