初学者之前没有阅读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. Visual Studio 2013 和 ASP.NET 预览

    VS 2013预览版在2013的TechEd大会由Brain Harry正式发布.这次发布包括了一系列的新特性:工程模板.Scaffolding 升级和Web工具.当你在VS 2013创建一个新工程的 ...

  2. javascript必知必会:面象对象编程

    面象对象编程技术的核心理念:封装.继承.多态:在一些主流的高级编程语言中,比如:C#,VB.NET,JAVA,PHP等都是很容易实现的,而如果要在javascript中实现面象对象编程,可就不那么直接 ...

  3. java中的hashcode()和equals()

    equals()和hashcode()都继承自object类. equals() equals()方法在object类中定义如下: public boolean equals(Object obj) ...

  4. Web API Filter ActionFilterAttribute 使用

    WebApi 提供两种过滤器的类型: 1.ActionFilterAttribute 2.exceptionFilterAttribute 两个类都是抽象类,ActionFilter 主要实现执行请求 ...

  5. [译]WebVR技术方案草案

    注:基于官方的.bs规范专用格式进行了翻译,但结果发现无法编译成html格式,所幸基本兼容.markdown格式. 中文翻译项目地址:https://github.com/web3d/webvr-sp ...

  6. 使用HttpDownLoadHelper下载文件

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO ...

  7. JVM简介

    关于java的JVM这块儿知识,在项目做大之后,一些性能的优化,要涉及到数据库,一些缓存要放在内存中.还有一些JMS的消息传播等等,高大上的知识需要有JVM内存模型知识的支持.所以自问自答,来回答下面 ...

  8. Bash中的任务(job)管理

    本来不准备写这篇博客的,因为任务管理(job管理)非常非常常用,以至于觉得根本没有必要去写这样一个东西.但想了下,还是记录一下吧,也许有人会用到呢. 不知你是否碰到过这样的情况,当你兴致勃勃的打开VI ...

  9. [小北De编程手记] : Lesson 06 玩转 xUnit.Net 之 定义自己的FactAttribute

    xUnit.Net本身提供了标记测试方法的标签Fact和Theory.在前面的文章<Lesson 02 玩转 xUnit.Net 之 基本UnitTest & 数据驱动>中,也对它 ...

  10. ImFire即时通讯系统构建(架构)

    msgServer集群(ms) 设计作用: 该服务主要提供客户端的接入服务.每个ms维护当前接入用户的用户状态和心跳,每个ms地位是对等的. 设计考虑: ms之间不会直接交互,减少交互的复杂度.在用户 ...