晚上在 V2 的 Java 的节点看到有人问 Java Web 书籍推荐。我这半年多的时间,也从别的方向开始转向 Java 服务端开发,因此,我来讲下个人学习路线,帮助有须要的朋友把半只脚踏进 Spring 大门。java
本文所描述的路线,适合有其余面向对象语言编程经验,具有数据结构、算法、网络、数据库、设计模式、Linux 使用经验的人,若是你没有基础,这篇文章可能不适合你。git
电脑系统推荐使用 *nix ,不管是 Linux 仍是 macOS 都有强大的工具能让你学习的过程驾轻就熟,Windows 系统也不是不能够,但 Windows 系统的终端我的很不喜欢。github
IDE 推荐 IntelliJ IDEA,使用 Eclipse 也是能够的,不过如今愈来愈多的人开始使用 IntelliJ IDEA。web
学习的过程当中你会遇到各类各样的问题,无脑推荐 Google,鉴于目前国内的网络环境,你须要有利器可以访问 Google(好比 AT&T 漫游,误)。redis
Java 基础有 Java编程思想、Java核心技术、Head First Java 等,我选择的是 Java编程思想(第4版),第 22 章是讲 GUI 的,能够不看。另外,Java 核心技术(卷1、卷2)中讲了 Java 编程思想没有涉及的网络及 JDBC。算法
如今你有 Java 基础了,可是如今 Java 发展到 1.9 的版本了,怎么办?spring
Java编程思想(第4版) 基本覆盖了 1.5 版本的内容,1.六、1.7 版本的更新,能够经过网上查资料来学习。1.8 版本有比较大的更新,建议买本书系统学习,我使用的是 Java 8 实战。数据库
好了,如今你会写 Java 代码了,可是 .java 文件如何成了 .class 文件,.class 文件长成什么样,又如何被加载到虚拟机中执行等等若干问题,难道你很差奇。这里推荐深刻理解Java虚拟机(第2版)。编程
随着时间流逝,你写了很多代码。但条条大路通罗马、再加上语言自己的语言负担,你或许会写出不那么优雅的代码,你须要前辈的经验来写清晰、健壮、高效的代码。Effective Java 就是这么一本书。固然,还有重构、代码整洁之道这样的书,但这里只讨论 Java 。设计模式
强烈不推荐上来直接上框架,你须要先了解 JSP、Servlet,尤为是 Servlet。这里我使用的是 Head First Servlets & JSP,Servlet与JSP核心编程这本书网上评价也不错。
好了,如今来讲企业中的框架该怎么学。最最最重要的是,学的过程当中必定要动手。
万事开头难。我最开始接触的时候,也是不知道如何开始框架的学习,在网络找了不少方法,浪费了很多时间,记住只有适合本身的才是最好的。在开始介绍前,再重复一遍,一动手尝试,二大胆猜想并验证。
在我刚开始的时候,不少人推荐直接读官方文档,通过验证,这种方法不适合初学者,或者说不适合我。
这里我使用的是Spring实战,学 Spring 必定要理解依赖注入(你说控制反转也行)和 AOP,跟着这本书敲,书中关于配置的东西必定要看仔细、理解好,否则配错了,本身找起来可能很麻烦。
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。