Spring注入Struts RequestProcessor

时间:2009-08-04 14:44:17

标签: java spring struts

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

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

1 个答案:

答案 0 :(得分:1)

简短的回答是“不”。长的回答是“有点”:

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

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

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

Spring / Struts集成详细描述了here