代码改变世界

我推荐的 Java Web 学习路线

2017-10-27 00:10  l4y  阅读(...)  评论(...编辑  收藏

晚上在 V2 的 Java 的节点看到有人问 Java Web 书籍推荐。我这半年多的时间,也从别的方向开始转向 Java 服务端开发,所以,我来说下我的学习路线,帮助有需要的朋友把半只脚踏进 Spring 大门。

本文所描述的路线,适合有其他面向对象语言编程经验,具备数据结构、算法、网络、数据库、设计模式、Linux 使用经验的人,如果你没有基础,这篇文章可能不适合你。

工欲善其事必先利其器

电脑系统推荐使用 *nix ,不论是 Linux 还是 macOS 都有强大的工具能让你学习的过程得心应手,Windows 系统也不是不可以,但 Windows 系统的终端个人很不喜欢。

IDE 推荐 IntelliJ IDEA,使用 Eclipse 也是可以的,不过现在越来越多的人开始使用 IntelliJ IDEA。

学习的过程中你会遇到各种各样的问题,无脑推荐 Google,鉴于目前国内的网络环境,你需要有利器能够访问 Google(比如 AT&T 漫游,误)。

Java SE

Java 基础有 Java编程思想Java核心技术Head First Java 等,我选择的是 Java编程思想(第4版),第 22 章是讲 GUI 的,可以不看。另外,Java 核心技术(卷1卷2)中讲了 Java 编程思想没有涉及的网络及 JDBC。

现在你有 Java 基础了,但是现在 Java 发展到 1.9 的版本了,怎么办?

Java编程思想(第4版) 基本覆盖了 1.5 版本的内容,1.6、1.7 版本的更新,可以通过网上查资料来学习。1.8 版本有比较大的更新,建议买本书系统学习,我使用的是 Java 8 实战

好了,现在你会写 Java 代码了,但是 .java 文件如何成了 .class 文件,.class 文件长成什么样,又如何被加载到虚拟机中执行等等若干问题,难道你不好奇。这里推荐深入理解Java虚拟机(第2版)

随着时间流逝,你写了不少代码。但条条大路通罗马、再加上语言本身的语言负担,你或许会写出不那么优雅的代码,你需要前辈的经验来写清晰、健壮、高效的代码。Effective Java 就是这么一本书。当然,还有重构代码整洁之道这样的书,但这里只讨论 Java 。

Web

强烈不推荐上来直接上框架,你需要先了解 JSP、Servlet,尤其是 Servlet。这里我使用的是 Head First Servlets & JSPServlet与JSP核心编程这本书网上评价也不错。

好了,现在来说企业中的框架该怎么学。最最最重要的是,学的过程中一定要动手。

万事开头难。我最开始接触的时候,也是不知道如何开始框架的学习,在网络找了很多方法,浪费了不少时间,记住只有适合自己的才是最好的。在开始介绍前,再重复一遍,一动手尝试,二大胆猜测并验证。

1. Spring

在我刚开始的时候,很多人推荐直接读官方文档,经过验证,这种方法不适合初学者,或者说不适合我。

这里我使用的是Spring实战,学 Spring 一定要理解依赖注入(你说控制反转也行)和 AOP,跟着这本书敲,书中关于配置的东西一定要看仔细、理解好,不然配错了,自己找起来可能很麻烦。

2. Spring 与 MyBatis、Redis 等其他框架的整合。

MyBatis 推荐官方文档,然后找个 demo 做一下,自己再练习练习就可以了。

与 Spring 整合的时候参考文档,可以很简单的完成。

Redis 等其他框架的整合参考 Spring 实战,或者找资料都是可以的。

其他

要不要看视频这个事,我的观点是能不看就不看,但不要因噎废食。慕课网上有 SSM 框架的视频,对于这个路径,我的经验是直接跳过前两个,即战斗伊始--Spring转战阵地--SpringMVC,这两部分看 Spring实战就可以了,后边两个可以看看。

注意,针对这个慕课网这个视频我这里解释的是上文的你都做了,且自己写的服务能够正常运行。

刚接触框架配置很容易出错,出错的时候一定要耐心看输出的信息,有的很简单可能是手误,有的可能可能需要你对框架有些理解,所以 Just Google It

手动倒入 jar 包费时费力,上 maven 啊。

好了,你的服务跑起来了,你的半只脚已经进入了 Spring 的大门,请继续加油。


我在 Github 上有一个基于 SSM(Spring、Spring MVC、MyBatis)的小项目,部分学习内容会在该项目中使用。

该项目 Spring 相关配置,完全使用基于注解的方式。博主在刚接触各种配置的时候,绕了一些弯路。

对于刚接触这些框架的朋友,该项目或许会有些许帮助。如果在理解该项目时或参考时遇到任何问题,欢迎通过你能找到的任何方式联系我,非常乐意共同学习。

项目地址为:spittr

文中提高了慕课网,如果你喜欢 xml 配置的方式,可参考另外一个项目 seckill 。该项目是博主在慕课网上学习该课程的源代码,项目中没有完全采用基于注解的方式,相比而言,该项目在配置方面更加老道。

我写完了,如果你有什么不明白的可以发邮件给我。如果文中有不合适的地方,也请指正。我的邮箱地址是:shixj.cs@foxmail.com