繁体   English   中英

Spring注入Struts RequestProcessor

[英]Spring Injecting into Struts RequestProcessor

我为我的应用程序编写了一个自定义Struts RequsetProcessor,它手动从Spring获取一些引用。 它工作得很好,但我想做“正确”的事情,并在施工时注入我需要的一切。

有没有办法定义一个自定义Struts RequestProcessor,我可以在Struts实例化这个RequestProcessor时将Spring对象注入其中?

最简洁的答案是不”。 长的答案是“有点”:

假设Struts通过ContextLoaderPlugin在您的应用程序中与Spring集成,您可以执行以下两项操作之一:

A)创建一个你将在Spring上下文中定义的“ProcessorContext”bean(或任何你想要调用的bean),并通过从Spring的上下文中获取它来从自定义请求处理器访问它(可以通过WebApplicationContextUtils.getWebApplicationContext(getServletContext())获取它WebApplicationContextUtils.getWebApplicationContext(getServletContext()) )。

B)如果您的自定义处理器扩展了Spring的DelegatingRequestProcessorDelegatingTilesRequestProcessor您可以编写一个新的请求处理器,它可以按功能执行您想要的操作,将所有依赖项绑定到Spring上下文,然后扩展DelegatingRequestProcessorDelegatingTilesRequestProcessor以从上下文中获取它(通过类型或id)并委托给它。 这实际上是(A)的扩展,但它将所有Spring的管道委托给Spring的请求处理器扩展,使您的自定义处理器与Spring无关。

这里详细描述了Spring / Struts集成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM