我写了一个Tomcat阀门并在server.xml中配置它。 到现在为止还挺好。但是,我希望其中一个Valve的数据成员是一个Spring托管bean。 那么,我怎样才能让阀门进行Spring管理,以便我可以将Spring的IoC注入阀门中?
答案 0 :(得分:1)
阀门与应用程序无关,而弹簧上下文则与之相关。所以你不能在Valve中拥有一个spring-managed bean。
当然,您可以在Valve构造函数中实例化spring上下文,并在那里使用context.autowireBean(this)
,但这将是一个单独的spring上下文,而不是来自任何可用上下文的上下文。
从技术上讲,你可以访问来自Valve的上下文,但是afaik来自请求,所以你可以获得每个servlet上下文的ApplicationContext
,并从那里获得对bean的引用,但是这听起来很奇怪。