【问题标题】:How to autowire httpsession without server如何在没有服务器的情况下自动连接 httpsession
【发布时间】:2018-05-08 00:02:50
【问题描述】:

我有一个通用类K,它自动连接HttpSession。 此类得到扩展:

  • A extends K
  • B extends K

现在A 类需要HttpSession,它将作为 web 应用程序在 tomcat 服务器中运行

但是B 不需要在服务器上运行,因为它有批处理作业。所以HttpSession不需要..

在使用主程序运行 B 时,它会抛出异常 nobeandef found for httpsession。

【问题讨论】:

  • A 有tomcat 服务器是什么意思? Tomcat 服务器是运行您的应用程序的服务。因此,java 类不能“拥有”tomcat 服务器
  • 我们有两种配置..一种用于 Web 应用程序,另一种用于批处理...不需要批处理服务器,但我们使用相同的 java 类
  • 编辑您的问题并解释,以便用户理解您的问题
  • 添加@SAM 的评论,如果您不能提供堆栈跟踪、使用的框架等,很难理解您在问什么。HttpSession 可以来自各种库,并且每个都可以以不同的方式实例化。请为您的问题添加更多详细信息,尤其是异常堆栈,因为它们提供了大量信息。

标签: java spring httpsession


【解决方案1】:

有几种方法可以避免 B 需要 HttpSession。最简单的方法是使自动装配成为可选:

@Autowired(required = false)

这应该可以满足您的需要,但有副作用,A 也不再需要它。

替代方法是将@Autowired 移动到A 上的setter 方法,用于HttpSession。这将保留A 所需的依赖关系,但Spring 将不再需要尝试将其连接到B

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 2021-04-19
    相关资源
    最近更新 更多