为什么我们总是将Hibernate,Spring和Strut放在一个应用程序中?

时间:2011-08-09 14:01:20

标签: java hibernate spring frameworks spring-mvc

当然,我在谈论使用MVC模式。
当然,Hibernate通过Model层让我们的生活变得更轻松 但是,Spring和Strut都使用Controller和View 所以,我的问题是:“我无法理解为什么其他人总是把两个 Spring& Strut放在一个应用程序中,而我们只需要其中一个(Strut或Spring)。如果有人理解请告诉我,谢谢!
我只是Java世界的一个孩子,所以任何评论都表示赞赏。

8 个答案:

答案 0 :(得分:8)

  

但是,Spring和Strut都使用Controller和View。

Spring is many things,如下图所示:

spring modules overview

其中一件事是Spring MVC framework。我同意,将(而且通常)将Spring MVC与Struts一起使用是有意义的(尽管在大型站点中,不同的部门可能有不同的要求)。

然而,Spring也是很多其他的东西,最重要的是an IOC framework,因此整合不同的模型和视图技术是完全合理的。

答案 1 :(得分:3)

Spring是 Spring - IOC容器 Spring MVC - Web动作框架。 Struts只是一个Web动作框架。因此,如果您更喜欢Struts而不是Spring MVC,但也想要一个IOC容器,那么您将使用Struts with Spring。

此外,Spring还提供了声明式事务管理,安全框架,一组JDBC帮助程序类等,您可能希望在Struts / Hibernate应用程序中使用它们。

答案 2 :(得分:1)

Spring不仅仅是MVC。它有更多的集成,例如数据库,安全性,DI等。通常你想使用其中一个功能,如果你使用Spring(这也不意味着你必须使用Spring MVC)。

答案 3 :(得分:1)

我不会一直说。就个人而言,我从来没有把Spring和Struts放在同一个应用程序中,我愿意打赌大多数Spring / Hibernate项目也不会使用Struts。

答案 4 :(得分:1)

我认为你首先误解了MVC模式。模型不是关于持久性,而是关于业务逻辑。它通常涉及一些持久性和服务类。为此,许多人选择Hibernate用于持久性,而选择Spring IoC用于依赖注入目的。

对于Web应用程序的View和Controller部分,一个众所周知的Web mvc框架是Struts和Spring MVC。 Spring本身由许多组件组成,Spring IoC和Spring MVC是其中的两个。 Spring MVC与Struts相当,所以你不要一起使用它们。但是将Struts和Spring IoC结合起来是可以的。

答案 5 :(得分:1)

让我们说Spring和Struts都是在某些方面重叠的框架。即使我认为,如果你充分利用弹簧,根本不需要支柱。但是人们倾向于坚持他们习惯的东西。由于Struts已经存在了相当长的一段时间,因此有许多应用程序基于此,并且许多人已经从中做出了专业并且永远不会丢弃它。这就是我见过很多这种混合应用的原因。

答案 6 :(得分:1)

IT 主要取决于您的项目需求,在我们的项目中我们使用了 JQuery,在 UI 层使用了很多 Struts 标签,这就是我们使用 struts2 的主要原因,因为 struts2 与 JQuery 有很好的集成 Struts2-JQuery 标签库非常有用,因此我们使用 Struts2 + Spring 框架提供了一种简单的方法来管理依赖项。 (因为它的 DI 和 IoC) 它可以很容易地与 struts 2 框架集成。 ContextLoaderListener 类用于与 struts 2 通信 spring 应用程序。

答案 7 :(得分:0)

Struts - 通常提供MVC框架(大多数生产支持和维护应用程序已经与它集成)。 Spring - 注入/添加新的组件而不会干扰现有的java类/代码。