spring【3】(struts2和spring的整合下)


  Struts2和Spring集成有两种方案,是根据action的创建来划分的!
    如何进行两者的集成合并呢?这里Struts2为我们提供了jar包:struts2-spring-plugin-2.1.8.1.jar。我们需要将此jar包也引用到项目中。这样两个框架就可以通过此jar包进行合并集成了。
    简单说一下这个jar包的作用吧:插件中提供了新的工厂类,覆盖了Struts2的原工厂类。新工厂类的工作原理:首先根据Action的完整类名,到Spring配置文件中查询bean标签的id是否存在一致的名称。如果有一致的说明,Action对象是由Spring负责创建,并由Spring进行装配组合对象之间的关系。

     如果查找不到,会进行特殊的处理操作,再由Strtus2框架进行反射创建Action对象,并采用Strust2框架的自动装配功能来完成Action和Service对象的关联。默认是根据name进行查找的,当然我们也可以进行修改,例如改成以type类型进行查找的方式:

<span style="font-size:18px;"><constantname="struts.objectFactory.spring.autoWire"value="type"></constant></span>

Struts2负责流程,Spring负责对象的创建,Action和Service都由Spring框架负责创建。这是常用的集成合并方案。
      1,struts2.xml的写法:
 
<span style="font-size:18px;"><span style="font-size:18px;"><struts>  
             <!--写法基本一样但是注意class的值,这里没有写真正路径,为了是在Spring中根据此值进行查找-->  
        <package name="example" namespace="/user" extends="struts-default">  
            <action name="login" class="loginAction" method="login">  
                <result name="success" type="redirect">/success.jsp</result>  
                <result name="login" type="redirect">/login.jsp</result>  
            </action>  
        </package>          
    </struts>  
    </span> </span>

2,applicatinContext.xml的写法:

<span style="font-size:18px;">    <span style="font-size:18px;">  <!--这里的id对应上边的class,这里的class才是真正的路径,采用了Spring的根据name自动装配的功能,当然也可以我们手动指定,这里需要注意的是,action需要多例创建,而Spring默认为单例创建的,所以需要制定scope="prototype"-->  
        <bean id="loginAction" class="com.ljh.action.LoginAction" autowire="byName" scope="prototype"></bean>  
       
        <bean id="userService" class="com.ljh.service.UserService" ></bean>  
    </span>  </span>


          这样就实现了二者的合并了,主要是将action交给Spring创建,并组合彼此的关系了,是彼此框架只干自己的事,分工明确,提高效率。

 

        综上,为Struts2Spring的简单合并总结,例子较为简单,还需要在实践中体会,灵活应用框架才会是我们的开发变的更为高效,更为简单。通过编程,通过框架仔细琢磨其中的魅力,用心钻研,才会有更大的收获。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值