春季休息如何识别新会话?

时间:2021-02-09 09:55:15

标签: java spring rest session

我在理解 spring rest 如何识别新会话时遇到了问题。假设我们有如下定义的简单会话 bean:

@SessionScope
public class Counter {

  private int counter;

  public int inc() {
    return counter++;
  }
}

我们还有一个简单的 rest 控制器,它提供了调用 Counter 的 inc() 方法并返回其当前值的 get 方法。 我期望每个请求(在邮递员中提出)都会导致获得值 1,因为无法识别会话。例如,没有像传统的基于 servlet 的应用程序那样的 JSESSION_ID cookie。我实际得到的是计数器的增加值,如果我在邮递员、网络浏览器或 curl 中提出请求,这并不重要。即使在私有模式下使用浏览器仍然指的是同一个 bean 实例。 问题是 spring 如何识别新会话以及我如何在“测试”环境中模拟不同的会话。

1 个答案:

答案 0 :(得分:0)

找到答案 - bean 缺少 @Component 注释。使用该 JSESSION_ID cookie 创建,显然这是 spring 识别会话的方式。