初学者之前没有阅读java框架源码的习惯。没有阅读过源码,知道整体流程么?知道依赖注入的概念么?知道aop么?知道其中用到了哪些设计模式么?

再说了,如果一上手就是源码?难道你没有注意到Spring的类有多少个吗?各个模块之间的组织模式么?所以我想说那些说看源码的人,完全是不负责任的。如果楼主能看懂源码就不会问这样的问题。
个人推荐:
Spring 3.x企业开发实战: 非常基础,但是对知识点都有涉及。


工作之后,因为公司也使用了Spring,所以为了工作,你不得不自己学,上班的时候好好的看已经写好的代码,不懂的就去网上查,下班后就自己搭建Spring的项目,这种状况持续了两个月,不知道搭建了多少次环境后,终于达到了一看控制台就基本上明白是哪里出错了。

之后,一个小功能需要我独立完成,我就把SpringMVC直接引入,不会的依旧去网上查,一段时间后终于开始慢慢熟悉了。这个时候也对Spring慢慢的熟悉起来了。

所以,项目驱动是最好的老师

比如你要学Spring,首先其他的不说,先来一个用户的增删改查,做完后,什么数据绑定、数据验证、拦截器、mvc、jdbcTemplate、、、、都自然而然的熟悉起来了。

到了这个时候,就开始慢慢的深入了,比如SpringMVC的流程、bean实例化步骤以及生命周期等等。

等你拿着Spring官方文档的目录,能把上面的东西说出来的时候,基本上就算熟悉了Spring了,所谓熟悉就是出了问题基本上能通过看控制台或者找资料能解决。

再进一步,你就开始需要学习设计模式之类的,什么工厂模式、模板模式、适配器模式等。

等熟悉了设计模式了,开始学gradle之类的构建技术(Spring就是用他来进行构建的),学得一般般之后,就可以开始熟悉Spring源码了。

不过Spring源码很大,而且很多功能基本上只是为了保持向上兼容,所以要完全熟悉是需要大量的时间的。

真到了那一步,基本上,任何一个框架拿过来,就可以真正拿着官方文档就可以开始做项目了。
 
《Spring 3.x企业应用开发实战》 这本书真的还不错,虽然代码有少许错误,但是在你只跑demo的情况下 还是满足初学需求的!
然后基本可以靠文档解决大部分问题了!
我不反对一上来就看文档,但是初学者可能基本概念,spring的applicationContext.xml如何配置都不一定熟悉,spring启动报错都不一定看的明白!
之后进阶就是《Spring In Action》和官方文档了

0. 打好基础,了解反射,AOP,巴拉巴拉这些基础知识
1. 官方文档
2. 官方示例
3. Github上各种sample
4. 同时总结思考
 
1. 看视频浅入门;2.看书深入原理, 推荐 《Pro Spring》 3.通读官方 Reference 了解规范和实现;4. 关注 Spring 官方 release page, 了解版本间功能的差异。
<pro spring> 前面几章很细致,推荐,后面mvc马马虎虎

初学Spring有没有适合的书的更多相关文章

  1. 初学 Spring boot 报错 Whitelabel Error Page 404

    按照教程,写了个最简单的 HelloWorld,尼玛报错 -->Whitelabel Error Page 404. 网上99%都是项目结构不对,说什么 Application放在父级 pack ...

  2. 初学 Spring MVC(基于 Spring in Action)

    Spring MVC(Model-View-Controller) 当你看到本博文时,我猜你可能正面临着我已探索过的问题. 同其他博主一样,我先按照书上详细的介绍一下 Spring MVC,也是为了自 ...

  3. spring整合hibernate之买书小测试

    spring来整合hibernate就是用spring来管理hibernate的sessionFactory和让hibernate来使用spring的声明式事务. 一:加入相应的jar包. 二:写hi ...

  4. 初学Spring

    Spring是当今最流行的框架,今天开始,dayday同学要正式开始学习Spring了,加油 以下是一个简单的应用Spring框架的java程序 src\dayday\HelloSpring.java ...

  5. spring源码分析的书到了

    现在写java后台可以说都能用上spring 在原有的spring基础上,加上自己定制的一些功能,能够使编程变得非常简化. 我也准备在我的毕业设计中写一些spring改造的东西.用来简化开发. 就拿连 ...

  6. 初学spring boot踩过的坑

    一.搭建spring boot环境 maven工程 pom文件内容 <project xmlns="http://maven.apache.org/POM/4.0.0" xm ...

  7. 记录初学Spring boot中使用GraphQL编写API的几种方式

    Spring boot+graphql 一.使用graphql-java-tools方式 <dependency> <groupId>com.graphql-java-kick ...

  8. 初学 spring

    1.spring 开发环境,包含eclipse https://spring.io/tools3/sts/all/

  9. 初学spring(二)

      1.spring推荐使用接口编程,配合di可以达到层与层之间解耦

随机推荐

  1. Windows Azure HandBook (5) Azure混合云解决方案

    <Windows Azure Platform 系列文章目录> 在很多情况下,我们都会遇到本地私有云和公有云做互通互联的混合云场景.对于这种混合云的场景,微软的Windows Azure会 ...

  2. tornado--SESSION框架,一致性hash,分布式存储

    预备知识 tornado框架session要自己写 cookie存储在客户端浏览器上,session数据放在服务器上 session依赖cookie 扩展tornado,返回请求前自定义session ...

  3. js学习笔记(一)

    1.数组实用方法大全 //给数组添加个方法,返回数组中的最大值 Array.prototype.max = function() { return Math.max.apply(null,this); ...

  4. VUE2.0不可忽视的很多变化

    今天使用webpack-sample初始一个vue-cli项目,在app.vue文件中添加了个钩子函数ready,可是ready内的事件一直不执行,检查了webpack文件和package.json也 ...

  5. 读卡器的Win32 Dll调用

    unsafe class Program { [DllImport("mwhrf_bj.dll")] public static extern int rf_card(int ic ...

  6. LeetCode - Populating Next Right Pointers in Each Node II

    题目: Follow up for problem "Populating Next Right Pointers in Each Node". What if the given ...

  7. Handler "BlockViewHandler" has a bad module "ManagedPipelineHandler" in its module list

    当你的ASP.NET MVC项跑在IIS时,出现如标题Handler "BlockViewHandler" has a bad module "ManagedPipeli ...

  8. C#获取执行存储过程的" 返回值"代码

    以下是C#代码: /// <summary> /// 执行存储过程,返回" 返回值" /// </summary> /// <param name=& ...

  9. spread表格树实现

    先上图看下效果图: 玩表格的朋友应该对Component和C1Flexgrid并不陌生吧.其实我也有用C1和DGV扩展了一个表格树,占有内存小,效率也可以,但是UI是硬伤,中规中矩,不美观.我上面是基 ...

  10. Firemonkey 载入 Style 皮肤 (*.fsf 二进制文件) 速度测试

    说明:Firemonkey 可以换肤是一大亮点,但使用它必须要付出一点代价,就是需要一点载入的时间,下面以 *.fsf 二进制文件来做载入测试,有兴趣可以参考看看. 开发:XE8 for iOS 皮肤 ...