我应该先学习啥,Spring 还是 Hibernate? [关闭]

Posted

技术标签:

【中文标题】我应该先学习啥,Spring 还是 Hibernate? [关闭]【英文标题】:What should I learn first, Spring or Hibernate? [closed]我应该先学习什么,Spring 还是 Hibernate? [关闭] 【发布时间】:2010-10-17 20:27:05 【问题描述】:

我刚刚开始学习 Struts,我正在努力争取成为一名出色的 Java 程序员。我的下一个决定是选择接下来学习哪个,Spring 还是 Hibernate?

你们对我有什么好的建议或技巧吗?提前致谢!

【问题讨论】:

【参考方案1】:

我建议学习 Spring。只学习基础知识,然后当您确实开始学习 Hibernate 时,您将能够利用所有使 Hibernate 更易于使用的 Spring 助手。

还有一点是,Spring 在许多层中都很有用,而不仅仅是在数据访问部分:)

【讨论】:

如果我在学习spring之前选择hibernate会犯错吗?大多数答案都建议先学习 spring,因为他们说两者都是互补的技术 @saplingPro:是的,它们是互补的,但我不会说先学习 Hibernate 一定是一个错误【参考方案2】:

我认为 Hibernate 相当容易和直接地获得基本的使用技能,也许更重要的是,EJB3 正在成为一种标准。

Spring 是一种外部技术,不是正式的 J2EE 的一部分,所以第二次使用它可能是有意义的,它还有更多方面,你真的想要一本好书。

【讨论】:

【参考方案3】:

Spring 和 Hibernate 是两种非常互补的技术,根据需要,您可以同时使用这两种技术,或者不使用。但是,这两个框架所依赖的基础都是 100% 适销对路的,更重要的是,这对于任何经验丰富的专业人士来说都是必需的。

如果不首先获得关系数据建模、关系数据库设计和事务处理方面的基础知识,学习 Hibernate 几乎没有价值。因此,这些应该是您使用 Hibernate 的先决条件。

如果不首先获得有关设计模式、依赖注入和应用程序设计的基础知识,学习 Spring 几乎没有价值(听起来很笼统,您需要了解应用程序层、类和包依赖项、MVC(听起来像您通过 Struts 熟悉这一点)、安全性和 Web 标准,当然还有 OOD 的基础知识)。

通过学习这两者,您将成为即使没有市场,但至少是非常扎实的专业人士,他们对处理大多数 Java(而不仅仅是 Java)应用程序充满信心和舒适。

【讨论】:

其实你提到的前提条件,我不熟悉。老实说,这似乎令人生畏。 grigory 提出了一些好的观点。如果不了解技术背后的概念,您可能会以非预期或设计的方式使用它们。这些都是流行的框架,但它们并不能解决所有问题。先决条件可能一开始就令人生畏,但它们会让你成为更好的开发者。 嗨,Kevin,您建议我如何尝试解决这些先决条件? OOD、数据建模和事务处理的基础知识是第一。然后您可以跟进其余部分,同时根据您的优先级启动 Hibernate 或 Spring:数据库开发 (Hibernate) 或通用应用程序。开发(春季) OOD - Booch 数据建模的面向对象分析和设计应用程序 - Sanders 事务处理的数据建模 - Bernstein 和 Newcomer 的事务处理原理【参考方案4】:

首先我学习了休眠。使用 groovy 尝试不同的 Hibernate 示例。然后学习了 Spring 及其对 Hibernate 的支持。我认为我的旅程非常有趣。

这里是一个 Struts+Spring+Hibernate 应用的例子。前端为 Struts,中间层为 Spring,持久层为 JPA/Hibernate。

http://struts.apache.org/2.0.11/docs/struts-2-spring-2-jpa-ajax.html

【讨论】:

【参考方案5】:

我先是自学了 Hibernate,然后才知道 Spring 如何使它变得更容易。

【讨论】:

【参考方案6】:

Spring 比 Hibernate 更大,更普遍适用。您的决定是学习曲线的长度和完成后您将拥有的实用程序之间的权衡。

我推荐 Spring,因为它既可以与 Struts 和 Hibernate 共存,也可以为其中任何一个提供替代方案(Spring Web MVC 和 Spring JDBC)。

Spring 将对您的 Java EE 设计产生有益的影响。从那开始。

【讨论】:

【参考方案7】:

我会先选择 Spring。 Spring 有很多有用的部分:依赖注入、面向方面的编程、JDBC 帮助器类、整个 MVC 框架和加载更多。您可以在您的第一个应用程序中尽可能少地或尽可能多地使用 Spring,并且参考文档非常出色。您无需购买任何一本书即可轻松学习 Spring。

【讨论】:

【参考方案8】:

我会考虑同时学习它们。 Spring 和 NHibernate 都是具有高学习曲线的大型框架。您将需要一些学习和实验时间来熟悉并擅长它。当您忙于这两个框架时,您将自动首先关注它们最有用的部分。首先学习重要部分将使学习曲线更加陡峭。

【讨论】:

【参考方案9】:

我认为您应该简短地分享您的个人资料以获得更好的答案

但是... hibernate 和 spring 都很热门,您会在为企业应用程序发布的所有工作要求中找到它们 - 因此,就您的选择而言,您处于正确的轨道上。

恕我直言,hibernate 比 Spring 更棘手 原因是——Spring 凭借其架构对代码的侵入性最小 需要掌握的 API 很少。 所以要在 Spring 中编码——你不必真正编写 Java 之外的任何东西 但是要编写 hibernate 代码,您需要了解 Hibernate API 和 hibernate 编程的陷阱。 hibernate 的基础知识很容易掌握 - 但学习技巧和琐事 - 需要时间

如果我是招聘经理并且正在使用 hibnernate 和 Spring 我宁愿选择在 Hibernate 上更强大的人,而不是在 Spring 上更强大的人 就 spring 而言——你作为一个有贡献的程序员——几乎不用担心 很可能该应用程序已经有一个适当的框架 - 您必须插入您的贡献。

但是在休眠中编码——就像我之前说的——如果你有这方面的经验会更好

PS:我知道每个人对此都有不同的看法 - 所以你可能会更加困惑。我认为 - 一旦你分享了一些你的个人资料 - 它会帮助人们给你一个更好的建议。祝你好运!!!

【讨论】:

【参考方案10】:

这些天我不会选择 Struts。如果您已经在考虑使用 Spring,那么您还应该看看 Spring MVC,尤其是较新的基于注释的控制器非常适合使用。

我建议在 Hibernate 之前学习 Spring,因为如果你坚持核心,也许 WebMVC 会更容易学习,这是我的建议。 Spring 在上一个版本中增长了很多,但核心仍然简单易懂。

Hibernate 要复杂得多。我建议了解像 Hibernate 这样的 ORM 的一般用途,学习配置 hibernate 的 hibernate 注释方式,然后直接进行 Spring/Hibernate 集成,因为它使许多事情变得更容易。如果您的域有多个基本类型,您还可以查看GenericDAO pattern

【讨论】:

【参考方案11】:

如果你需要这两种技术,Spring Live 就是你所需要的。 我已经从零开始学习这些技术了:)

【讨论】:

【参考方案12】:

如果目标是学习 MVC 框架以及如何在该框架中使用 ORM,那么学习的逻辑方法是 Spring,然后是 Hibernate。在我看来,这样你就可以很容易地掌握这些概念

【讨论】:

【参考方案13】:

这里也一样,我先学了hibernate,然后学了Spring,我认为这是正确的顺序, 从 youtube 上做一些小例子,看看你如何配置休眠,创建一个会话并使用你的数据库做一些技巧,至少是基本的东西。 那就去看看如何用hibernate配置spring吧。

【讨论】:

【参考方案14】:

我认为你学习了 Spring,RDBMS 的基础知识,然后去学习 Hibernate,这对你来说很容易学习..

【讨论】:

以上是关于我应该先学习啥,Spring 还是 Hibernate? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Spring 啥时候使用服务或组件? [复制]

我应该首先学习啥 Java 框架? [关闭]

接下来我应该学习啥 DI/IoC 框架? [关闭]

我应该先学习 Angularjs 还是 Laravel? [关闭]

初学者应该先学什么:TDDSwift 还是函数式?

Mybatis Spring整合mybatis