2009-08-04 85 views
4

我爲我的應用程序寫了一個自定義的Struts RequsetProcessor,它是從Spring手動獲取一些引用。它工作得很好,但我想做「正確」的事情,並在施工時注入我需要的一切。Spring向Struts注入RequestProcessor

有沒有一種方法來定義一個自定義的Struts RequestProcessor,我可以在Struts實例化這個RequestProcessor時向它注入Spring對象?

回答

1

簡短答案是「否」。長的答案是「種」:

假設的Struts與春天在你的應用程序通過ContextLoaderPlugin整合,你可以做兩件事情之一:無論

A)創建一個「ProcessorContext」豆(或要調用它),你將在你的Spring上下文中定義並從你的自定義請求處理器中通過從Spring的上下文獲得它(你可以通過WebApplicationContextUtils.getWebApplicationContext(getServletContext())得到)來訪問它。

B)如果您的自定義處理器擴展Spring的DelegatingRequestProcessorDelegatingTilesRequestProcessor可以改爲寫請求處理器想要的功能的角度來看,將其綁定到Spring上下文與所有你的依賴,並擴展了什麼,會做DelegatingRequestProcessorDelegatingTilesRequestProcessor從上下文(通過類型或ID)獲取並委託給它。這實質上是(A)的擴展,但它將所有Spring的管道委託給Spring的請求處理器擴展,讓您的定製處理器獨立於Spring。

詳細描述Spring/Struts集成here

+0

感謝您在答案中加入一個網址......這些信息可以幫助您! – 2009-08-04 19:28:48