Action中成員bean的自動注入



public class TestAction extends ActionSupport{

	private TestService testService;

 	public void setTestService(TestService testService) {
  		this.testService= testService;
 	}
}

 兩種方式:

  • 自動裝配,不在spring中注入Action

在struts.xml中:

<action name="testAction" class="com.xxxxx.action.TestAction">

就可以了

  • spring配置

spring.xml中

<bean id="testAction" class="com.xxxxx.action.TestAction" >

     <property ref="testService" />

</bean>

struts.xml中

<action name="testAction" class="testAction">

在struts.xml中action指定的class像上面這種方式指定全類路徑名的話,這時,不論spring配置文件中的<bean id="loginAction" class="org.xxxxx.action.LoginAction"></bean>有沒有指定<property name="testService" ref="testService"/>,只要有<bean id="testService" .../>存在,並且Action中有相應的set方法,當實例化Action類時,會一併將service的實例注入

如果<action name="testAction" class="testAction">這裏的class指定spring配置文件中的bean的id,則不會出現testService自動注入問題,而是根據<bean id="testAction" class="com.xxxxx.action.TestAction"></bean>有沒有指定<property name="testService" ref="testService"/>來決定,有指定則實例化Action類時,會一併將testService實例注入,沒有配置service則爲空

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章