(转帖)使用 Spring 更好地处理 Struts 动作三种整合 Struts 应用程序与 Spring 的方式
IOC 和 Spring
IOC 是一种使应用程序逻辑外在化的设计模式,所以它是被注入而不是被写入客户机代码中。将 IOC 与接口编程应用结合,就像 Spring 框架那样,产生了一种架构,这种架构能够减少客户机对特定实现逻辑的依赖。请参阅![]()
![]()
回页首
?
![]()
![]()
回页首
?
?
前面已经提到过,在![]()
![]()
回页首
?
![]()
![]()
回页首
?
?
我利用了![]()
![]()
回页首
?
?
清单 5 是一个典型的 struts-config.xml 文件,只有一个小小的差别。它注册 Spring 代理类的名称,而不是声明动作的类名,如(1)处所示。DelegatingActionProxy 类使用动作映射名称查找 Spring 环境中的动作。这就是我们使用![]()
![]()
回页首
?
![]()
![]()
回页首
?
<value>![]()
![]()
回页首
?
结束语
在本文中,您已经学习了将 Struts 动作整合到 Spring 框架中的三种窍门。使用 Spring 的?ActionSupport?来整合 Struts(第一种窍门中就是这样做的)简单而快捷,但是会将 Struts 动作与 Spring 框架耦合在一起。如果您需要将应用程序移植到一个不同的框架,则需要重写代码。第二种解决方法通过委托?RequestProcessor?巧妙地解开代码的耦合,但是它的可扩展性不强,并且当 Struts 的?RequestProcessor?变成一系列命令时,这种方法就持续不了很长时间。第三种方法是这三种方法中最好的:将 Struts 动作委托给 Spring 框架可以使代码解耦,从而使您可以在您的 Struts 应用程序中利用 Spring 的特性(比如日志记录拦截器)。
三种 Struts-Spring 整合窍门中的每一种都被实现成一个完整可用的应用程序