【问题标题】:From zero to Java > Spring > Hibernate for web从零到 Java > Spring > Hibernate for web
【发布时间】:2011-04-16 10:46:22
【问题描述】:

好的...这是我的实际状态:

作为一名 PHP 脚本编写者太久了,我想我涵盖了基础、良好实践(结构、注释、缩进、工作计划等)、OOP、MVC、安全性和 PL/SQL 的公平知识。但是从来没有见过一行 java 代码,是时候做一些巫术来“在 21 秒内学习 XYZ”。目标是在 MVC 上编写一个完整而复杂的应用程序(我在一家全球公司工作),具有许多不同的模式,还使用 ​​ORM、缓存和持久性。

这就是为什么我想知道要阅读哪些书来学习 Java 理论,然后是 Spring,然后是 Hibernate。然后练习和无休止的调试时间会给我更多的知识,就像我迄今为止学到的任何其他东西一样。

非常感谢任何帮助(不是关于成为 PHPer 的笑话)。

简而言之,我想知道如何使用(JBoss?)Spring+Hibernate 使用 Java 设计可扩展的 Web 应用程序

另外,我不想对最佳/最差和差异进行抨击,只是一些 ISBN #s 或链接可以为我指明正确的学习方向...我有时间,我只是没有知道从哪里开始。

TIA!

编辑:

好的,首先感谢您的回答。其次,我想我并不清楚,我不想在 21 秒内学习(这只是那些“21 天内学习 XYZ”的参考),我知道这是一个漫长的过程。我在 1998 年开始使用 basic 和 pascal 进行编程,然后我学习了 C++,然后从 2003 年开始学习 HTML/Javascript 和 PHP,我只用 PHP 编写。这就是为什么我想继续使用 Java 1.5/2 年,而这里是 Spring 和 Hibernate 是常态,所以我在想:

1) 尝试 XXXX 以了解如何正确设置 YYYY 以开始运行 Java 2)读AAAA、BBBB、CCCC,拥抱Java 3) XXXX, YYYY 和 ZZZZ 适合春天 4) 也许 AAAA、BBBB 和 CCCC 可以帮助 Hibernate

我也知道我必须像每天 8..12 小时一样在你面前练习,你将能够用从数据库中提取的对象中提取的“n”个语言说“Hello world”从内存中的模板调用的视图,由前端控制器使用几个扩展模型存储。

还有一件事,我问这个是因为我喜欢编程……它回馈了很多。我不是专业人士,我有幸赚到一些钱并与真正的专业人士一起工作,但他们嫉妒我,因为我是一名行政人员,在他的额外时间赚几块钱。这就是为什么我在这里而不是向他们询问的原因。

再次感谢。

【问题讨论】:

    标签: java php hibernate spring


    【解决方案1】:

    “21 秒学会 XYZ”

    最好阅读this

    你可能想咬的比你能咀嚼的更多。

    您需要 Java - 这是基础。

    但是您可以只使用 servlet、使用 JSTL 编写的 JSP 和 JDBC 来实现很长的路要走。

    您不需要立即使用 Spring,但它会帮助您以良好的方式构建应用程序。我会推荐 Spring 作为设计良好、实现良好、测试良好的代码的一个很好的例子。

    休眠应该在行尾。您可能不需要或不想要动态生成的 SQL。

    我同意 Grails 的建议,因为它可以让您轻松进入,但如果出现任何问题,您将死在水中。 Grails 基于 Java、Spring、Hibernate 和 Groovy。如果你对它的基础一无所知,如果它失败了,你就会任由它摆布。

    更新:

    既然你提供了更多的信息,我再补充一点。

    我们的目标是写一个完整且 复杂的应用程序(我正在为 全球公司)超过 MVC 有很多 不同的模式,也使用 ORM, 缓存和持久性。

    既然我们已经确定这是一个漫长的过程,您需要确保(希望)为这项工作开具发票的全球公司准备好支持它。他们是否有基础设施、员工和知识来跟随你走这条 Java EE 的道路?如果没有,您将不会为他们提供服务。在为自己做准备的同时,让他们为您的计划做好准备。

    祝你好运。也许我们可以帮助你爬上那座山。

    【讨论】:

    • 对所有这些都是肯定的,最重要的是大多数人不能在短时间内从 PHP 转到 JEE。
    • 别从 PHP 到 Java。顺便说一句,很棒的答案,duffy :) 真相很难。
    • 谢谢你,BalusC。我很感激你的来信。
    • 非常感谢您诚实的文字。目前(希望是长期的)我正在为通用电气担任外包工作,正如我所说的那样,这样的大公司有几个标准。我真的不知道在遥远的将来会做什么,但希望可以在 Java 中实现与我现在在 PHP 中所做的一样大的事情。毕竟我想学习,我知道这些怪癖,但这从未阻止过我。一次一个“hello world”,我知道在前 2 年我将从 PHP 转向 Java,并尝试学习新的东西来反映技术的意义:EVOLVE
    • 我支持@BalusC 的评论,很好的回答 (+1)。
    【解决方案2】:

    Java 需要一点时间,但 Java 如此受欢迎的原因之一是该语言易于学习。框架 API 需要更长的时间。话虽如此,一旦您对使用 Java 感到有些满意。你应该跳入 Spring MVC 来学习 Web 开发。恕我直言,Spring MVC 很容易上手,而且 Spring 的概念看似简单,我认为新手可以在没有太多背景故事的情况下学习它。另外,使用 Spring 使您能够使用 Spring JDBC 模板,这使 JDBC 变得轻而易举。而且它们比任何 ORM 映射工具都更容易学习。以您在 SQL/PHP 方面的背景,这将是最适合您的工作方式。

    Hibernate 需要几个月的时间才能达到专业水平。这令人沮丧,学习曲线很高,而且您只会感到沮丧,因为它会迫使您以一种对熟悉 SQL 的人来说可能不自然的特定方式来做事。我不建议有人从那里开始。您将退出 Java 并尝试学习它。而且你真的不需要它。

    Grails 位于 Hibernate 之上,因此使用它会迫使您处理它,而且我认为您期望 Grails“只处理”hibernate 是不现实的。我知道有些人喜欢它,但我大多是从具有 Java 历史的经验丰富的开发人员那里听到的,而不是新手。

    祝你的新事业好运。

    【讨论】:

      【解决方案3】:

      我是从 Java 和 J2EE 转向 PHP 的人,我喜欢这两种语言。两者都有自己的优势。

      由于您已经是一名程序员并且了解基本的编程概念,我会说花一些时间阅读官方 Java 教程,您将在更短的时间内学习很多 Java。许多教程都是由 Joshua Bloch 等经验丰富的程序员编写的。

      核心 Java

      要学习核心 Java: http://download.oracle.com/javase/tutorial/java/index.html

      基本 Java 类: http://download.oracle.com/javase/tutorial/essential/index.html

      集合: http://download.oracle.com/javase/tutorial/collections/index.html

      JDBC 数据库访问: http://download.oracle.com/javase/tutorial/jdbc/index.html

      在 J2EE 上:

      我建议从设置 tomcat 开始,先学习 Servlet 和 JSP,然后再学习 Spring 和 Hibernate。

      对于 Servlet 和 JSP:

      Head First Servlet 和 JSP。 虽然这个更适合 SCWCD 考试。

      Spring 和休眠:

      我从这里和那里学到了一些东西。但是自从过去 2 年以来还没有真正编码过,所以很多事情肯定已经改变了。那时我们为 Spring 编写了太多的 XML,感觉就像我在用 XML 而不是 Java 进行编码。 :) 我听到注释很多事情都发生了变化。

      另外,花时间使用 Eclipse 或 Netbeans 也会很有帮助。

      希望对你有帮助。

      普里坦。

      【讨论】:

        【解决方案4】:

        Grails 将消除传统 Java EE 开发的许多痛苦。它在幕后使用 Spring/Hibernate,所以你正在使用这些技术,它会为你引发战争;您不必为很多任务编写构建脚本。

        【讨论】:

          【解决方案5】:

          好吧,http://www.oracle.com/technetwork/java/index.html 是开始的基本点,然后安装 Maven 并使用 http://www.jweekend.com/dev/LegUp 的生成器生成一些命令,这些命令在运行时会导致 Maven 生成示例项目。我建议将 Wicket/Spring/JPA 之一(因为 JPA 将包装 Hibernate)作为合适的入门“一体式”项目。

          【讨论】:

          • -1 仅适用于 Maven。如果您从未使用过 JDBC,为什么还要包装 Hibernate?当你有 Spring web MVC 时检票口?抱歉,我不同意。
          【解决方案6】:

          我会回应其他人在这里所说的 - 先学习 Java,再学习基础知识。先走再跑等等。

          Joshua Bloch 的《Effective Java》是一本学习 Java 中一些常见行为的好书。如果您从对话式书籍中学习得最好,那么当我教其他人有关 Java 时,HeadFirst 系列真的很棒。

          至于 Hibernate,当您准备好使用它时,如果您决定使用它,我会推荐 Bauer 和 King(两位 Hibernate 开发人员)的 Java Persistence With Hibernate 一书。其中很大一部分也可以在线获得。

          我还建议学习有关打包和部署的知识。我个人更喜欢 Maven 作为打包和构建工具,尽管其他人更喜欢 Ant。一旦你准备好开始一个更大的项目,如果你研究这些,你会省去一些麻烦。

          另外,为了呼应@duffymo 所说的话,你可能会咬得比你能咀嚼的多。您所描述的内容中有很多变化的部分,从长远来看,拥有一位经验丰富的技术开发人员(至少在 Java 和 JPA/J2EE 方面)将有助于项目更加顺利。

          祝你好运!

          【讨论】:

          • 感谢标题,我会期待的。也感谢您的建议。
          • @Jhon 对不起,如果人们听起来过于悲观......大多数时候,我看到有类似措辞的提议/问题/等的人处于咬得比他们能咀嚼的更多的位置。我自己做过,个人。我还推荐 Head First 设计模式书 - 它确实有助于深入了解设计模式的心态。
          • 我知道很多(不是每个人)在高级语言方面最有经验的人倾向于减少(特别是)PHP,但是......嘿!它的脚本太容易了,像我这样的人可以做到,而且我不是专业人士,我与专业人士一起工作。我希望得到一点尊重,但是他们如此努力地获得了他的学位并感到受到威胁,因为我可以编写一些没人能指出并说“嘿,这不是 OOP/安全/功能/测试/速度方面/等等”的代码。我知道如果我想做某事,我必须做到近乎完美,因为我处于聚光灯下。所以我知道这个问题有他尖锐的一面。不过谢谢 x1000
          • @Jhon 一点也不贬低任何语言。我在 Perl、Java、C/C++、Objective C 和一点 PhP 方面做过工作。在您添加之前,问题的类型听起来像是一个非常兴奋的人(我相信您是)并且可能并不完全意识到所涉及的时间量。我看到你现在是,祝你好运。
          猜你喜欢
          • 1970-01-01
          • 2011-05-17
          • 1970-01-01
          • 2014-05-08
          • 2012-06-07
          • 1970-01-01
          • 2012-06-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多