Java 如何通过弹簧启用Tomcat阀

Java 如何通过弹簧启用Tomcat阀,java,spring,tomcat,tomcat-valve,Java,Spring,Tomcat,Tomcat Valve,我编写了一个Tomcat阀,并在server.xml中对其进行了配置。 到现在为止,一直都还不错。但是,我希望valve的一个数据成员是Spring管理的bean。 那么,如何使阀也由Spring管理,以便让Spring的IoC将这种依赖性注入阀?阀与应用程序无关,而Spring上下文与之相关。所以在阀门中不能有弹簧管理的bean 当然,您可以在Valve构造函数中实例化spring上下文,并在那里使用context.autowireBean(this),但这将是一个单独的spring上下文,而

我编写了一个Tomcat阀,并在server.xml中对其进行了配置。 到现在为止,一直都还不错。但是,我希望valve的一个数据成员是Spring管理的bean。
那么,如何使阀也由Spring管理,以便让Spring的IoC将这种依赖性注入阀?

阀与应用程序无关,而Spring上下文与之相关。所以在阀门中不能有弹簧管理的bean

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


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

Valves与应用程序无关,而spring上下文与之相关。所以在阀门中不能有弹簧管理的bean

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


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

感谢您的快速回答。目前,我们为部署到Tomcat中作为ServletFilters的几个应用程序实现了一个通用功能。我们想把它整合成一个阀门。该阀本身与部署的应用程序中的其他bean没有直接关系。然而,它确实依赖于一些弹簧连接的lib。所以我只想用弹簧钢丝把这些豆子都插进阀门里。我认为你的建议行得通。谢谢。谢谢你的快速回答。目前,我们为部署到Tomcat中作为ServletFilters的几个应用程序实现了一个通用功能。我们想把它整合成一个阀门。该阀本身与部署的应用程序中的其他bean没有直接关系。然而,它确实依赖于一些弹簧连接的lib。所以我只想用弹簧钢丝把这些豆子都插进阀门里。我认为你的建议行得通。谢谢