是否可以使用会话中的属性配置 Spring 会话范围的 bean?

Posted

技术标签:

【中文标题】是否可以使用会话中的属性配置 Spring 会话范围的 bean?【英文标题】:Is it possible to configure a Spring session scoped bean with attributes from the session? 【发布时间】:2011-02-06 06:10:28 【问题描述】:

我正在尝试创建一个服务 bean,它在被引用时将使用基于 HttpSession 的属性进行初始化。

假设我的 webapp 会执行以下操作:

    建立会话 请求登录名和密码 当请求服务时(它是 scope="session" 并且具有 init-method="init()"),会为会话创建一个新实例。

在init方法中,我可以通过将HttpSession作为参数传入并通过EL引用它来引用它吗?

对此的任何想法将不胜感激。

【问题讨论】:

【参考方案1】:

您可以按如下方式访问线程绑定的HttpSession

HttpSession session = 
    (HttpSession) RequestContextHolder.getRequestAttributes()
        .resolveReference(RequestAttributes.REFERENCE_SESSION);

【讨论】:

感谢 axtavt 的回答。不幸的是,您引用的 API 与文档中的内容不匹配。我找到了***.com/questions/1629211/…,这让我离我需要去的地方更近了。感谢您的意见!

以上是关于是否可以使用会话中的属性配置 Spring 会话范围的 bean?的主要内容,如果未能解决你的问题,请参考以下文章

Spring websocket会话开始时间

如何设置 Spring 会话范围 bean 的属性名称?

启用了 ssl 的 spring mvc - 没有可用的会话属性

Spring 模型属性覆盖具有相同名称的会话属性

Vertx STOMP 会话存储配置

是否可以在 C# 中遍历存储在服务器上的所有会话