初学者之前没有阅读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. mybatis错误之配置文件属性配置问题

    在mybatis的配置文件SqlMapConfig.xml中,可以在开始的地方先加载一个properties节点,用来定义属性变量. <!-- 加载属性文件 --> <propert ...

  2. C# 线程系列三 定时器线程

    上一篇文章我们讲诉了自定义线程执行器和任务处理器 我们继续来讲解自定义线程的定时执行器,我们在很多场景下需要做到某些状态或者数据进行更新,如果事情很多很杂,很时候时候会创建很多不同的定时器那么势必会照 ...

  3. log4net的配置详解

    log4net是一款优秀的第三方日志框架,可以很容易的加载到开发项目中(引用log4net的dll,再配置些基本参数即可),帮助程序员把日志信息输出到各种不同的目标,常见的有文本.数据库.window ...

  4. inner join on, left join on, right join on的区别与介绍

    Table A aid   adate 1      a1 2      a2 3      a3 TableB bid bdate 1    b1 2   b2 4    b4 两个表a,b相连接, ...

  5. 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板

    [源码下载] 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板 作者:webabcd 介绍不可或缺 Window ...

  6. 第二讲:WCF介绍(2)

    代码 https://yunpan.cn/cPns5DkGnRGNs   密码:3913   在上一讲中我们说到 在代码 当中  完成了 服务的寄宿. 这里我们说下 在实际的开发 当中 我们一般不会去 ...

  7. onblur鼠标失去焦点事件

  8. java 克隆

    1. About Java中, 对于基本数据类型可以使用"=" 来克隆,此时两个对象除了相等是没有任何关系的; 而对于引用类型, 却不能简单地使用"="来克隆, ...

  9. PHP内核探索之变量(4)- 数组操作

    上一节(PHP内核探索之变量(3)- hash table),我们已经知道,数组在PHP的底层实际上是HashTable(链接法解决冲突),本文将对最常用的函数系列-数组操作的相关函数做进一步的跟踪. ...

  10. linux网络编程 no route to host 解决方案

    linux网络编程 no route to host 解决方案 [整合资料] (2013-05-13 21:38:12) 转载▼ 标签: net iptables it 分类: Linux 参考资料h ...