spring framework mvc会替换struts吗?还是我困惑了?

时间:2010-01-04 21:36:40

标签: java spring struts

是严格用于MVC类型架构的struts(1或2?)还是有更多的东西?

我要问的原因是我正在查看一个Web应用程序,他们似乎同时使用spring和struts。

4 个答案:

答案 0 :(得分:8)

总结:

  • Spring和Spring MVC是不同的东西。
  • Spring是一个依赖注入框架和一个控制容器的反转
  • Spring MVC是一个MVC Web框架
  • Struts也是一个MVC Web框架
  • Spring MVC和Struts不能同时使用(好吧,也许他们可以,但这是不可取的)
  • Spring和Struts可以同时使用 - Struts提供Web层,Spring管理服务层及其到Web层的连接。

答案 1 :(得分:4)

  

Struts(1或2?)是否严格用于MVC类型的架构还是有更多呢?

嗯... Struts 2(AKA WebWork 2)是一个 MVC框架,如Spring MVCStripes Framework。它们都是替代方案,并以表示层(仅表示层)为目标。

  

我要问的原因是我正在查看一个Web应用程序,他们似乎同时使用spring和struts。

使用Struts 2(或Stripes)不排除使用Spring for Dependency Injection(和其他服务)。换句话说,您不必在表示层级别使用Spring MVC来在其他级别使用Spring。实际上,大多数框架(至少对于Struts 2和Stripes框架来说都是如此)确实提供了很好的Spring集成,由于Spring的流行,它在某种程度上是强制性的。

答案 2 :(得分:1)

Spring是一个多头的野兽,可以用于各种应用程序,网络和其他。当您将Spring用于Web应用程序时,您可以一直使用Spring自己的MVC框架来处理应用程序的Web特定部分。但你没必要。 Spring的后端方面 - 即构成应用程序各个组件的所有bean以及与它们一起使用的各种Spring工具(事务管理,安全性等)都可以用于任何前端。显式插件可用于将Spring与Struts,Struts 2和其他一些集成,但即使这是可选的,您也可以使用Spring而不需要任何MVC框架。

答案 3 :(得分:0)

Spring几乎从一开始就支持Struts。 Struts用作MVC(sorta DTO传递机制到后端),所有后端逻辑由Spring提供,提供IoC并映射到Struts。阅读more herehere