Java新手如何学习Spring、Strurs、Hibernate三大框架?
1. 学习方法
1.1 给我一个可以运行的学习Demo
曾经有过面向百度学习框架的同学,一定会有这种感受,哗啦一搜,各种框架文章呀,真好,真好,趁着学习干劲足足的, 赶紧的照着这些文章做呀。 可是,倒腾了几十分钟,妈蛋~ 怎么跑不出来啊, 怎么报错啊? 这个报错的话,文章里没有说怎么解决呀! 不行不行,换篇文章吧,换了好几个,还是没办法做出效果出来。 慢慢的,心里就凉了,一点点的丧失了学习的兴趣和动力,最后就不了了之了~
其实呢,一个框架的demo跑不起来,主要有两个原因:
一:Jar包不对,现在各种框架都有很多的版本,当Jar包的兼容性出现问题的时候会导致启动失败。
二:配置细节出错,框架用熟练了,开发是很快的,但是第一次用的时候,会进行很多的配置,只要有一个细节出错,都会导致无法运行看到效果,并且出来一些奇奇怪怪的报错。
可是,对于新手而言,无论是Jar包不对,还是配置细节出错,我都是无法识别的啊,我怎么知道哪个包版本不对? hibernate下的antlr-2.7.6.jar这个包版本不对?我连它是做什么的都不知道,你让我识别他版本不对? 再说配置细节了,我就是来学的呀,我能知道这篇文章这个配置细节讲错了,我还用来学吗?如果你想学习java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。
所以说。。。。 学习姿势很重要
正确的学习姿势是,先来一个能运行的学习Demo,里面包含了运行这个框架所需要的全部包,并且都是配置正确的,确保一定是可以跑起来。
所以呢,我在学习每个知识点的部分,提供了 需要的Jar包,以及一个可以运行的项目
这样确保,跟着教程走,一定走得通,不会花冤枉时间,那么学下去的信心,就增强了。 退一万步讲,实在是做不出来,挨个比较 "正确答案" 的代码,总能找到自己出错的地方在哪里,最终把代码跑起来,看到运行效果。
1.2 先让我看下运行效果是怎么样的
那么就开始学习教程内容吧。 说到这里,又不得不吐槽一下各种面向百度搜来的教程文章,就说学个Hibernate吧,一开篇,就给我讲Hibernate层次架构图,原理图,各种包名的含义,引用的各种Jar的用途。。。。 等等等等~ 妈蛋,我能看得懂这些,我还是新手吗?
(唱) 简单点,学习的方式,简单点
能不能一来就直接告诉我,这个文章跟着做了,能得到什么效果,让我明确学习目标
1.3 从零开始,按部就班来一遍
好了,现在我知道学习目标是什么了,勤快点的话,我还会把可以运行的项目拿来自己跑过一遍了,确实能用, 现在得我自己做一遍了。 ok, 那么就一步一步来吧
每个步骤,都有源代码,可以一行一行地跟着敲,也可以复制粘贴。
并且这个步骤所用到的代码里面的含义,也有详细的解释
1.4 代码比较
为什么我写的就是不行,而复制粘贴你的代码就以呢? 那多半是某个很小的细节没写对,可是查找起来很麻烦呢,有提高效率的办法吗?
在每个源代码旁边,都有一个在线代码比较按钮:
这样把错误高亮出来,就可以更快得定位出错行,原来是id写成di了~
1.5 原理讲解
好吧,还是花了些时间,跟着步骤一个一个做出来了,哟,确实能用呢。 这个时候,我就对框架为什么能用感兴趣了,你再讲原理啊,思路图啊,层次结构什么的啊,我就听得进去了
1.6 练习
这么走一遍,好,我对这个框架的基本使用心里有底了,但是,这基本上都是我抄你的代码啊? 不行,我得自己从头撸一遍,不然不会变成我自己的东西
2. 学习内容的层层推进
前面谈过了学习方法,接下来聊聊学习内容的规划
2.1 总体上的SSH学习节奏
既然题主是问的三大框架~ 那么说下学习顺序的个人建议吧
先学 Hibernate,因为你只需要Java中级的基础,有使用JDBC经验,就可以用它了,毕竟它是对JDBC的轻量级封装嘛。
然后是Struts,为什么放在Hibernate后面呢? 因为掌握Struts需要有前端基础,还需要有J2EE的知识才可以更好的理解其工作原理。
最后是Spring, 在SSH三大框架中,Spring扮演的是一个整合工具的角色,所以总要先了解其他的,再来用Spring。
2.2 Hibernte 的学习节奏
Hibernate的东西也不少呢,按照由浅入深,先把单个表CRUD搞了
然后再说多个表的关系
以上都搞了之后,就会对hibernate有一定程度的感性认识了,也会带着一些问题,这个时候再来谈谈里面的各种概念,就好理解了。
2.3 Struts 的学习节奏
跟Hibernate类似的,Struts也先把各种基础用法捋一遍
接着是Struts特有的标签,常用的列出来
最后是各种杂七杂八的概念和用法。。。。
2.4 spring 的学习节奏
Spring 因为是扮演整合工具的角色,所以其基本的东西并不多,就是IOC(DI), AOP。 而SpringMVC作为一个独立的,流行的MVC框架,是在专门的模块系统讲解,题主既然问的是SSH 三大框架,那么SpringMVC就不在本答的讨论范围了。
3. 整合
接着呢,就是整合了,要做SSH整合,我建议的学习方式是事先两两各自整合,这样整合需要消化的信息量相对较少,更易理解两两整合的思路。
等两两整合熟练了, 再SSH来一发
先2P,熟练了再3P,这样更符合广大人民群众的生活习俗,不是吗?
4. 关于注解和XML配置方式
最后说说注解和XML方式,这两种配置方式都比较常见,各自有合适的业务环境。 从学习的角度,建议先使用XML的配置方式进行学习,然后再对比着转到注解的方式。
对于刚开始在框架中使用注解方式的同学,通常会问一个问题,为什么用了这些注解,就可以替代xml了呢? 它们的工作原理是什么呢? 关于这个问题,做了个模块来专门讲解