最近一段时间,粗略的查看了一下Spring源码,对Spring的两大核心和Spring的组件有了更深入的了解。同时在学习Spring源码时,得了解一些设计模式,不然阅读源码还是有一定难度的,所以一些重要的设计模式简单的做了阐述。同时还会简单的加入一些GOF中提到的设计原则。Spring的源码阅读系列,也暂告一段落。下面是就带你走进Spring世界:

Spring系列的引子

1)Spring WebApplicationContext初始化与消亡

这一节帮我们了解Spring是如何初始化WebApplicationContext。初始化都做了哪些事情?我们在web.xml中配置的ServletContextListener到底有什么用?IOC的入口在哪里?都将在这里得到答案。

Spring IOC

2)IOC容器的设计与实现(一)——BeanFactory

这一节帮我们解决如下问题:

什么是IOC、DI、DIP?BeanFactory是做什么用的,他有哪几种实现方式?如何以编程式动态加载资源?BeanFactory与ApplicationContext是什么关系?

3)IOC容器的设计与实现(二)——ApplicationContext

看了这一节,就会知道下面的这些问题的原因:

Spring官方为什么推荐使用ApplicationContext,而不是BeanFactory?WebApplicationCOntext与ApplicationContext的区别在哪里?

Spring AOP

4)Spring AOP设计与实现(一):动态代理

这并不是一片单纯的讲Java动态代理的文章。阅读这一篇,你会了解什么是代理模式?代理模式主要用在什么地方?Java动态代理是如何实现的?你有没有猜想过动态代理生成的类是什么样的?

5)模拟JavaEE的Filter

学习JavaEE的人都对JavaEE中的Filter不陌生,但是大家可否想过它是如何实现的呢?为什么会在Spring AOP下来学习Java EE的Filter呢,两者有什么管理呢?

6)Struts2中被误解的Interceptor

用过Struts2的人都会对Interceptor有一定的了解,可你了解的那些是正确的吗?在Struts2、MyBatis、Spring、JFinal中都有Interceptor,甚至在Java中也有,他们的原理都是一样的吗?Interceptor与Filter是什么关系,有什么异同点呢?为什么会在Spring AOP下来学习Interceptor呢,两者有什么管理呢?Interceptor与AOP是和关系呢?

读完这一篇,上述问题都将得到解决。

7)标准AOP与Spring AOP

标准AOP,没听过?AOP联盟,没听过?Spring AOP的那些重要角色:Aspect、PointCut、JoinPoint、Advice等等。你能用一句话概括Spring AOP是做什么的吗?

8)使用标准AOP的API模拟Spring AOP + AspectJ的设计与实现

Spring中有哪几种AOP实现方式,你造吗?Spring AOP+AspectJ的实现你能模拟出来吗?Spring AOP与 JDK的动态代理有嘛关系,你造吗?

Spring MVC

9)Spring MVC 初始化

Spring的MVC框架你了解吗?这个过程做了那些事情?namespace-servlet.xml中的Bean Definition在哪里被加载你知道吗?

10)Spring MVC 如何处理HTTP请求

你难道对Spring MVC如何处理HTTP请求不好奇吗?文件上传,就一定要在namespace-servlet.xml中做相关配置吗?面试时问你这部分涉及到哪些设计模式,你会支吾吗?

Spring 下的数据访问

11)模板方法与回调函数

不是说数据访问的吗,怎么提起模板方法模式了呢?提了模板方法模式就算了,咋还提Callback呢?JDBCTemplate你造吗?

12)Spring JDBC 组件的设计与实现

使用Spring就一定要与Hibernate等ORM结合使用吗?你知道Spring中有个叫JdbcTemplate的良人在等你吗?

13)Spring如何支持各种ORM框架

对于Spring是如何支持那些数据访问框架的,你好不好奇,我不知道,反正我是好奇了。前面学习的模板方法模式,可不仅仅是为了了解Spring JDBC组件的。

Spring 事务处理

14)事务相关

这里是对事务的简单说明,如果你要看Spring 事务,这一节可是不容忽视的,以为它会带你去了解......(分布式事务、编程式事务等等)

这一章也将网络上大部分的事务相关的文章做了整理,你再也不用去网上搜了,有它就够了。

15)Spring事务管理的基础

你可能听过用过声明式事务管理或者编程式事务管理,但你知道他们根本是一样的吗?你知道TransactionManager的配置吗?

16)Spring声明式事务处理和编程式事务处理的设计与实现

艾玛,你终于出来了,都等不及了。

如果从头到尾看完了这些文章,并且理解了,那么该系列文章就应当带你走出了Spring,因为你了解了Spring核心,及其各种组件的设计与实现,这才是你学习的本质。

同时,这些文章中可能会有纰漏的地方,还请大家指正。大家共同学习,共同进步。

Spring源码阅读系列总结的更多相关文章

  1. Bean实例化(Spring源码阅读)-我们到底能走多远系列(33)

    我们到底能走多远系列(33) 扯淡: 各位:    命运就算颠沛流离   命运就算曲折离奇   命运就算恐吓着你做人没趣味   别流泪 心酸 更不应舍弃   ... 主题: Spring源码阅读还在继 ...

  2. 初始化IoC容器(Spring源码阅读)

    初始化IoC容器(Spring源码阅读) 我们到底能走多远系列(31) 扯淡: 有个问题一直想问:各位你们的工资剩下来会怎么处理?已婚的,我知道工资永远都是不够的.未婚的你们,你们是怎么分配工资的? ...

  3. SpringMVC源码阅读系列汇总

    1.前言 1.1 导入 SpringMVC是基于Servlet和Spring框架设计的Web框架,做JavaWeb的同学应该都知道 本文基于Spring4.3.7源码分析,(不要被图片欺骗了,手动滑稽 ...

  4. 【Dubbo源码阅读系列】服务暴露之本地暴露

    在上一篇文章中我们介绍 Dubbo 自定义标签解析相关内容,其中我们自定义的 XML 标签 <dubbo:service /> 会被解析为 ServiceBean 对象(传送门:Dubbo ...

  5. Spring源码解析系列汇总

    相信我,你会收藏这篇文章的 本篇文章是这段时间撸出来的Spring源码解析系列文章的汇总,总共包含以下专题.喜欢的同学可以收藏起来以备不时之需 SpringIOC源码解析(上) 本篇文章搭建了IOC源 ...

  6. 源码阅读系列:EventBus

    title: 源码阅读系列:EventBus date: 2016-12-22 16:16:47 tags: 源码阅读 --- EventBus 是人们在日常开发中经常会用到的开源库,即使是不直接用的 ...

  7. JDK1.8源码阅读系列之三:Vector

    本篇随笔主要描述的是我阅读 Vector 源码期间的对于 Vector 的一些实现上的个人理解,用于个人备忘,有不对的地方,请指出- 先来看一下 Vector 的继承图: 可以看出,Vector 的直 ...

  8. spring源码分析系列 (8) FactoryBean工厂类机制

    更多文章点击--spring源码分析系列 1.FactoryBean设计目的以及使用 2.FactoryBean工厂类机制运行机制分析 1.FactoryBean设计目的以及使用 FactoryBea ...

  9. spring源码分析系列

    spring源码分析系列 (1) spring拓展接口BeanFactoryPostProcessor.BeanDefinitionRegistryPostProcessor spring源码分析系列 ...

随机推荐

  1. Repository 设计模式介绍

    在DDD设计中大家都会使用Repository pattern来获取domain model所需要的数据. 1.什么是Repository? "A Repository mediates b ...

  2. linq查询xml

    1.加载xml字符串 XElement root = XElement.Parse(@"<?xml version='1.0' encoding='utf-8'?> <It ...

  3. Android调用系统自带的设置界面

    Android有很多系统自带的设置界面,如设置声音,设置网络等. 在开发中可以调用这些系统自带的设置界面. 点击以下列表中的选项,就可以调出相应的系统自带的设置界面. 如点击“无线和网络设置”,可以调 ...

  4. 禅道 Rest API 开发

    在老的 PHP 系统中使用 PHP 5.3以后的库 所谓老的系统,是指没有使用PHP 5.3以上命名空间(namespace)特性编码的系统. 但是,只要你的系统运行在 PHP 5.3及以上的环境,在 ...

  5. Linux命令详解之—more命令

    Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...

  6. Yii2.0学习笔记:创建登录表单

    第一步:在model层创建一个EntryForm.php文件 复制以下代码,注意model的文件.方法.类的命名规范(大小写) <?php namespace app\models; use Y ...

  7. Nginx负载均衡配置实例详解

    负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...

  8. C# RSA 分段加解密

    RSA加解密: 1024位的证书,加密时最大支持117个字节,解密时为128:2048位的证书,加密时最大支持245个字节,解密时为256. 加密时支持的最大字节数:证书位数/8 -11(比如:204 ...

  9. Kickoff - 创造可扩展的,响应式的网站

    Kickoff 是一个轻量级的前端框架,用于创建可扩展的,响应式的网站.作为前端开发人员,我们工作的类型越来越多样化.Kickoff 旨在帮助您在所有项目保持一致的结构和风格,无需添加其他框架. 在线 ...

  10. 25个最佳的 WordPress Gallery 画廊插件

    WordPress 画廊插件最适合用于作品展示网站,特别对于那些想以一个奇特的,现代的方式展示他们作品的摄影师.如果你想为你安装 WordPress Gallery 插件,那么下面的是你想要的. 本文 ...