当前位置 : 主页 > 网络编程 > 其它编程 >

StrutsSpring整合

来源:互联网 收集:自由互联 发布时间:2023-07-02
为了在Struts中加载Springcontext需要在struts-config.xml文件中加入如下部分 为了在Struts中加载Spring context需要在struts-config.xml文件中加入如下部分             通过Struts的plug-in在Struts和Spr
为了在Struts中加载Springcontext需要在struts-config.xml文件中加入如下部分

为了在Struts中加载Spring context需要在struts-config.xml文件中加入如下部分 

           通过Struts的plug-in在Struts和Spring之间提供了良好的结合点。通过plug-in我们实现了Spring context的加载不过仅仅加载Spring context并没有什么实际的意义还应该经过配置将Struts的Action交给Spring容器进行管理。               type"org.springframework.web.struts.DelegatingActionProxy"             name"loginForm">                在form bean这个节点上与传统的Struts配置没有什么区别而在Action上面则发生了变化。在传统的action节点上type属性写入action类的完整类名而和Spring结合后在这点上是使用了Spring提供的DelegatingActionProxy作为action的type属性DelegatingActionProxy同样是org.apache.struts.action.Action的一个子类它将把调用请求转交给真正的Action实现。通过这样的方式Spring获得了Action实例的管理权它将对Action进行调度并为Struts提供所需的Action实例。这样就可以将Action看作是Spring的一个bean它就可以享受Spring的所有服务如依赖注入、实例管理、事务管理等。    在applicationContext.xml中相应的配置如下的节点.......                                       最后这个bean的配置是关键这个名为“/login”的bean与Struts中的……

节点相对应这样Spring Bean Name与Struts Action Path相关联当Struts加载对应的Action时DelegatingActionProxy就根据传入的path属性在Spring Context寻找对应bean并将其实例返回给Struts。与此同时还可以看到"/login" bean 中包含了一个userDAO 引用Spring 在运行期将根据配置为其提供userDAO 实例以及围绕userDAO 的事务管理服务。这样一来对于Struts 开发而言我们既可以延续Struts 的开发流程也可以享受Spring 提供的事务管理服务。而bean 的另外一个属性singleton"false"指明了Action 的实例获取方式为每次重新创建。这也解决了Struts中令人诟病的线程安全问题。    至此SS组合已经将Struts MVC以及Spring中的Bean管理、事务管理融为一体。如果算上userDAO 中的Hibernate 部分我们就获得了一个全面、成熟、高效、自顶而下的Web 开发框架。 

网友评论