创建Action的两种方式Spring和Struts

    xiaoxiao2021-03-26  11

    1.action的创建交给Spring

    Action中的userService已经在applicationContext.xml配置,只需要把这个Action在applicationContext.xml中重新配置下

    <bean id="userAction" class="com.domain.UserAction>

    <property name="userService" ref="userService"/>

    </bean>

    在struts配置Action时,class属性不是原来Action类的位置(不然无法获取userService),  因此class应该写bean中的别名。 

    若是使用别名,则默认从spring容器中获得内容,getBean("userAction");

    默认是获得单例,若是没有获得内容,将自己创建。

    Spring中scope默认为singleton,  就是每次共用一个Action,但Action不是线程安全的,故applicationContext.xml中配置Action 有一属性scope 设其值为prototype,要求每一个线程创建一个独立的Action。

    2.action的创建交给Struts

    实际上只要保持Action中属性的属性名与applicationContext.xml中的bean名字相同,便会自动注入。不需要配置applicationContext.xml

    比如说:直接在struts.xml中配置  <action name="userAction" class="com.domain.UserAction">....</action>

    然后这个Action类中Field有一属性UserService userService, 恰好有一bean name="userService"在applicationContext.xml中配置,则只需要给userService加上set方法,便可实现自动注入。

    转载请注明原文地址: https://ju.6miu.com/read-650084.html

    最新回复(0)