Spring 如何启用 Tomcat 阀门

发布于 2024-10-13 11:43:13 字数 149 浏览 1 评论 0原文

我写了一个Tomcat Valve并在server.xml中配置它。 到目前为止,一切都很好。然而,我希望 Valve 的数据成员之一是 Spring 管理的 bean。 那么,我怎样才能使阀门也由 Spring 管理,以便我可以让 Spring 的 IoC 将该依赖项注入到阀门中?

I wrote a Tomcat valve and configured it in server.xml.
So far so good. However, I want one of the valve's data members to be a Spring managed bean.
So, how can I make the valve also be Spring managed so that I can have Spring's IoC inject that dependency into the valve?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

行至春深 2024-10-20 11:43:13

Valve 不与应用程序关联,而 Spring 上下文则与应用程序关联。所以你不能在 Valve 中使用 spring 管理的 bean。

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

从技术上讲,您可以从 Valve 访问上下文,但据我所知,它是从请求中访问的,因此您可以获取每个 servlet 上下文的 ApplicationContext ,并从那里获取对 bean 的引用,但是这听起来很奇怪。

Valves aren't associated with an application, while spring contexts are. So you can't have a spring-managed bean in a Valve.

You can, of course, instantiate the spring context in the Valve constructor, and use context.autowireBean(this) there, but this will be a separate spring context, not one from any of the contexts available.

Technically, you have access to the contexts from the Valve, but afaik it is from the request, so you can obtain the ApplicationContext for each servlet context, and from there - get a reference to a bean, but that sounds odd.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文