Spring源码学习笔记汇总

Spring

上图是引自Spring官网,相信有很多Java开发的朋友,很想探究下Spring原理。最近学习了Spring源码一段时间,学习过程中主要通过时序图,类图来记录Spring的主要运行原理和架构,遇到精彩的代码片段也同时截图记录。下面按Spring生命周期,通过一个主题一篇博客的形式来总结,希望能够对大家学习Spring源码有帮助。

Leer más

Spring源码学习总结

Spring以下几个模块的核心原理简述如下:

  1. Spring IoC:通过读取Xml或注解Bean定义转换成内存表示的BeanDefinition,根据BeanDefinition的信息通过反射实例化,期间会对依赖Bean进行注入;实例化完成后,通过BeanPostProcess作为入口,使用Cglib或Jdk方式生成代理对象,织入代理对象中含有AOP上下文。

Leer más

视图处理

通过Handler处理后返回ModelAndView,DispatcherServlet会根据返回的ModelAndView决定如何视图处理。

下图是视图处理时序图:

查看大图

Leer más

通过Handler处理业务请求

我们可以把处理请求的过程分成三部分来讲:

  1. 处理主流程;
  2. 参数绑定;
  3. 处理返回值

Leer más

查找处理请求的Handler

在查找处理请求的Handler前,需要提前做好准备工作:注册好所有的Handler。那我们先从注册开始看起。

一.注册Handler

提示:

Leer más

Spring-MVC心脏-DispactcherServlet

Spring MVC底层实现基于Servlet和Spring容器,并通过优秀的设计保证了很好的扩展性。具体实现时以DispatcherServlet作为框架核心。DispatcherServlet本身是一个Servlet,其依靠Servlet为框架“引流”,在获得“流量”后,协调众多组件通力配合完成Web请求并返回响应。

Leer más

Spring-MVC基础设施介绍

介绍基础设施之前,先说说Spring MVC
由于Spring MVC涉及的组件较多,这里只列出主要的组件。

一.核心组件

1. DispatcherServlet

DispatcherServlet它负责接收HTTP请求并协调Spring MVC的各个组件完成请求处理的工作,可以认为是SpringMVC的心脏。

Leer más

Spring缓存管理原理

Spring缓存管理的实现可以分为两个部分来讲:

  1. 借力AOP:如何通过AOP使缓存管理生效;
  2. 缓存管理:缓存管理的本质是什么;

Leer más

Spring缓存基础设施介绍

Spring缓存的架构和事务的差不多,基本上是一个套路。我们看看有哪些组件。

一.核心组件

1. CacheOperation

CacheOperation:表示缓存操作元数据。具体子类代表不同缓存操作,可以理解为注解的内存表示。

Leer más

统一的数据访问异常体系

Spring提供的统一数据访问异常体系分两部分:

  1. 细化SQLException分类:构建了一套语义明确以DataAccessException为基础的数据访问异常体系;
  2. 异常转换:抛出的数据访问异常转换为DataAccessException,纳入数据访问异常体系内;

Leer más