【问题标题】:How do I Spring enable a Tomcat valve我如何 Spring 启用 Tomcat 阀门
【发布时间】:2011-01-21 20:46:56
【问题描述】:

我写了一个 Tomcat 阀门并在 server.xml 中配置它。 到现在为止还挺好。但是,我希望阀门的数据成员之一是 Spring 托管 bean。 那么,如何使阀门也由 Spring 管理,以便让 Spring 的 IoC 将该依赖项注入到阀门中?

【问题讨论】:

    标签: java spring tomcat tomcat-valve


    【解决方案1】:

    阀门与应用程序无关,而弹簧上下文是。所以你不能在 Valve 中使用弹簧管理的 bean。

    当然,您可以在 Valve 构造函数中实例化弹簧上下文,并在那里使用context.autowireBean(this),但这将是一个单独的弹簧上下文,而不是任何可用上下文中的一个。

    从技术上讲,您可以从 Valve 访问上下文,但它来自请求,因此您可以为每个 servlet 上下文获取 ApplicationContext,然后从那里获取对 bean 的引用,但这听起来奇怪。

    【讨论】:

    • 感谢您的快速回答。目前,我们为部署到 Tomcat 中的多个应用程序实现了一个通用功能作为 ServletFilters。我们希望将其整合到一个阀门中。 Valve 本身与部署的应用程序中的其他 bean 没有直接关系。但是,它确实依赖于一些弹簧连接的库。所以我只想把所有这些豆子都装上弹簧线,然后把它们注入阀门。我认为你的建议会奏效。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 2011-04-13
    • 2011-09-28
    • 1970-01-01
    相关资源
    最近更新 更多