应用程序无状态时的会话 bean

Session bean when the application is stateless

我有一个非常简单的问题:当我的应用程序中有 SESSION 个作用域 bean 时会发生什么,即 STATELESS

说来话长。我有后端应用程序,用 Spring Boot 编写,它为 REST APIAngularJS 编写的前端服务。我正在使用 JWT 进行身份验证,Spring 安全配置为 STATELESS。 但我也在使用 WebServiceTemplateSharePoint 进行通信。我负责与 SOAP API 通信的 beans 是 SESSION 作用域 beans,因为它们依赖于用户凭据。很难将 WebServiceTemplate 配置为每次调用都使用不同的凭据,所以我决定在创建时进行配置,然后我的问题就开始了。

一旦您将一些状态存储到会话范围的 bean 中,您的应用程序就会变成有状态的。

如果您需要在请求之间共享状态(在本例中为 SOAP 服务凭据)并希望拥有无状态应用程序(例如,由于您的应用程序集群化),您的选择很少:

  1. 将该状态存储到数据库中,并可选择将其缓存在服务中。 (如果 SOAP 调用失败,您可以使缓存无效并从数据库中读取新的凭据)
  2. 使用Spring Session project或一些键值存储来存储会话状态。