2011-03-27 162 views
3

我有一個關於彈簧和撐杆的問題。 目前我有彈簧注入我的struts行動類爲我。彈簧自動裝配Struts動作類

我正在試驗並試圖讓Spring爲我使用自動裝配注入我的Struts動作類 。

我有我的春天applicationContext配置文件掃描的基礎包的 動作類是使用context:component-scan base-package="my.package", 並使用在動作類的類層次@Component註釋IM。我也使用@Qualifier("myActionClass")在相同的動作類級別。 我沒有在applicationContext中將動作類配置爲Spring bean。

然後在我的struts.xml的配置文件,在配置我的動作類,而不是給完全合格的包和類名,我用的是@Qualifier註釋名稱"myActionClass"

雖然這並不奏效。 如果在我的applicationContext配置文件中,將我的動作類配置爲spring bean,請在動作類上刪除@Component@Qualifier註釋,並在struts.xml中爲該類添加動作類Spring bean id,然後Spring注入我的行動課,一切都很華麗。只是,這不是使用Autowiring動作類,那就是我正在測試的。

任何人都知道是否使用上下文進行自動裝配:component-scan base-package 掃描您的包的動作類,所以你不必在applicationContext配置它們是可能的?

回答

3

一切都在Spring文檔中有解釋:Apache Struts 1.x and 2.x

我不確定您是使用Struts 1還是2.對於Struts 1,您必須將Spring插件添加到Struts配置中(我知道它的工作原理)。在Struts 2中,所有動作都是由Spring創建的,因此它們完全有能力像所有其他bean一樣進行Spring注入。

0

Struts 2似乎依賴於存在一個彈簧bean,它具有與動作類名稱(包含全名)相同的spring bean名稱。您可以在@Component註釋中指定bean名稱,還可以製作全局用戶定義的bean命名策略,以避免將此信息添加到所有的豆類中