Spring源码由浅入深系列一 简介
2014-08-09 10:55
141 查看
概述:
Spring是一个企业级的开源框架。它提供轻量级的依赖注入、面向切面编程、全方位的整合框架。下图是Spring框架的组成部分,各部分内容作了简单说明。
依赖注入:
依赖注入是Spring框架的灵魂。它是一种解耦组件之间关系的高层设计模式。
依赖注入案例分析:
现在有一个业务流程中需要把数据保存到软盘中去。最直观的方法就是直接在业务流程中创建一个软盘,用软盘的方式保存数据。如下图:
那如果现在业务变更,我可以让客户选择用软盘来保存数据,或者是U盘。那可能的解决方式是面向接口编程,由工厂帮助我们去创建具体介质。如下图所示:
在这里请注意,我们通常的做法是在业务流程中,根据客户的选择,由工厂生成一个特定介质给业务,这就是我们常说的简单工厂模式。但是,也可以利用反射在工厂里去创建、装配业务与介质。业务与具体的介质完全没有关系,由工厂提供。这时候工厂就变为了一个依赖注入的容器。在Spring中,这个容器由BeanFactory实现。
Spring的灵魂是依赖注入,依赖注入灵魂就是反射。它的整个实现都是由Java反射去支撑的。
面向切面:
把一些公共功能定义成单独对象,然后在不修改其它类的前提下,将公共功能加入到这些类中。面向切面常用于缓存统一处理、统一异常处理等等。AOP(面向切面)概念:
Joinpoint(连接点): 程序执行过程中某个特定的点,比如方法调用的时候或者抛出异常的时候
PointCut(切入点): 需要被添加上通知的连接点的集合。
Advice(通知): 在连接点,动态嵌入的一段独立代码(通知常用来调用系统组件方法)。
Aspect(切面): 切入点和Advice的结合(抽象概念:定义在切入点调用通知)
Target(目标对象): 需要被添加上Advice的对象
代理对象:AOP框架生成的对象。在目标对象的基础上,添加了其他操作
面向切面的实现是通过动态代理实现的:JDK动态代理、CGLIB动态代理。
这一章,主要从宏观上把握Spring.到下一章,我们开始剖析Spring的源码。
相关文章推荐
- Spring源码由浅入深系列一 简介
- Spring源码由浅入深系列六 CreateBean过程
- Spring源码由浅入深系列六 CreateBean过程
- Spring源码由浅入深系列三 refresh
- Spring源码由浅入深系列三 refresh
- Spring源码由浅入深系列五 GetBean
- Spring源码由浅入深系列二 类结构
- Spring源码由浅入深系列二 类结构
- Spring源码由浅入深系列四 创建BeanFactory
- Spring 系列: Spring 框架简介----Spring AOP 和 IOC 容器入门
- Spring 系列: Spring 框架简介
- Spring 系列: Spring 框架简介
- Bean实例化(Spring源码阅读)-我们到底能走多远系列(33)
- 初始化IoC容器(Spring源码阅读)-我们到底能走多远系列(31)
- Spring 系列: Spring 框架简介
- java io系列04之 管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例
- Spring 系列: Spring 框架简介
- Spring 系列: Spring 框架简介
- java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream)
- 读完spring源码深入后浅出系列之什么是ioc