我推荐的 Java Web 学习路线
晚上再 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 基础了,但是现在 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。这里我使用的是 Head First Servlets & JSP,Servlet与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。
我推荐的 Java Web 学习路线的更多相关文章
- Java Web 学习路线
实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...
- Java Web学习路线
2016-08-22的早上,本是一个很平静的早上,坐在去往公司的公交车上想到了很多之前上学时的点点滴滴,回想起来还真的是耐人寻味啊,当初青春的懵懂,当初的冲动,当初的做事不考虑后果! 也正是这耐人寻味 ...
- Java Web学习系列——Maven Web项目中集成使用Spring
参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...
- Java web 学习之旅
java web学习之旅 来公司十天了,感觉已经慢慢地融入了这个环境中,几个学长人都很好,都是在他们帮助下,我才能比较顺利的开始了学习java web的旅途. 来这里学习的第一个阶段是做一个简单的用户 ...
- Java+Bigdata学习路线
Java+Bigdata学习路线 2019-05-28 07:04:33 @Auther:MrZhangxd STAGE 第一阶段:JAVA基础 |-第一阶段:JAVA基础 | |-可掌握的核心能力 ...
- [原创]java WEB学习笔记95:Hibernate 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- 201521123020《java程序设计》 第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1. ...
- C#中if_else以及for循环的简单理解
if_else语句的语法: if(判断条件) { 执行语句 }else { 执行语句 } 判断条件位true执行if大括号的语句,false执行else大括号的语句. if_else的扩展: 连续判断 ...
- Mysql双机热备配置(超详细多图版)
一.双击热备介绍 1.基本概念 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active- ...
- C#设计模式之二简单工厂模式(过渡模式)
一.引言 之所以写这个系列,是了为了自己更好的理解设计模式,也为新手提供一些帮助,我都是用最简单的.最生活化的实例来说明.在上一篇文章中讲解了单例模式,今天就给大家讲一个比较简单的模式--简单工厂模式 ...
- java向前引用
根据看书和看得文章,引出了一个关于"向前引用"的问题: public class InstanceInitTest { static { // { a = 6; System.ou ...
- 关于memcached的那些事儿
一.前言 目前,memcached + mysql的这种存储组合,被广泛地应用到“读多写少”的应用场景上.那么在使用memcached的时候,我们需要注意哪些问题呢? 下面我们来探讨下使用memcac ...
- MongoDB的备份和部署 高级功能索引,聚合复制,分片
创建备份 MongoDB 数据转储 为了在 MongoDB 中创建数据库备份,需要使用 mongodump 命令.该命令会将服务器上的所有数据都转储到 dump 目录中.你可以使用很多选项来限制转储的 ...
- mongodb 在windows下面进行分片
在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存就吃不消了,针对这样的场景我们该如何应对. 一:分片 mongo ...
- gephi安装后无法打开
具体解决的方法是找到gephi.conf文件(在“gephi安装目录\etc”中)文件,添加下面的一行,指定jdkhome的路径. jdkhome="C:\Program Files (x8 ...
- git fatal: I don't handle protocol 'https'问题的解决
问题重现 新建的仓库,再把本地的代码往上push的时候Git提示 $ fatal: I don't handle protocol 'https' 问题分析 Git是支持https的,这点毋庸置疑,所 ...