Spring源码由浅入深系列一 简介
来源:互联网 发布:mysql如何创建存储过程 编辑:程序博客网 时间:2024/05/22 08:18
概述:
Spring是一个企业级的开源框架。它提供轻量级的依赖注入、面向切面编程、全方位的整合框架。下图是Spring框架的组成部分,各部分内容作了简单说明。
依赖注入:
依赖注入是Spring框架的灵魂。它是一种解耦组件之间关系的高层设计模式。
依赖注入案例分析:
现在有一个业务流程中需要把数据保存到软盘中去。最直观的方法就是直接在业务流程中创建一个软盘,用软盘的方式保存数据。如下图:
那如果现在业务变更,我可以让客户选择用软盘来保存数据,或者是U盘。那可能的解决方式是面向接口编程,由工厂帮助我们去创建具体介质。如下图所示:
在这里请注意,我们通常的做法是在业务流程中,根据客户的选择,由工厂生成一个特定介质给业务,这就是我们常说的简单工厂模式。但是,也可以利用反射在工厂里去创建、装配业务与介质。业务与具体的介质完全没有关系,由工厂提供。这时候工厂就变为了一个依赖注入的容器。在Spring中,这个容器由BeanFactory实现。
Spring的灵魂是依赖注入,依赖注入灵魂就是反射。它的整个实现都是由Java反射去支撑的。
面向切面:
把一些公共功能定义成单独对象,然后在不修改其它类的前提下,将公共功能加入到这些类中。面向切面常用于缓存统一处理、统一异常处理等等。AOP(面向切面)概念:
Joinpoint(连接点): 程序执行过程中某个特定的点,比如方法调用的时候或者抛出异常的时候
PointCut(切入点): 需要被添加上通知的连接点的集合。
Advice(通知): 在连接点,动态嵌入的一段独立代码(通知常用来调用系统组件方法)。
Aspect(切面): 切入点和Advice的结合(抽象概念:定义在切入点调用通知)
Target(目标对象): 需要被添加上Advice的对象
代理对象:AOP框架生成的对象。在目标对象的基础上,添加了其他操作
面向切面的实现是通过动态代理实现的:JDK动态代理、CGLIB动态代理。
这一章,主要从宏观上把握Spring.到下一章,我们开始剖析Spring的源码。
0 0
- Spring源码由浅入深系列一 简介
- Spring源码由浅入深系列二 类结构
- Spring源码由浅入深系列三 refresh
- Spring源码由浅入深系列四 创建BeanFactory
- Spring源码由浅入深系列五 GetBean
- Spring源码由浅入深系列六 CreateBean过程
- Spring学习系列(一) Spring简介
- Spring系列(一)——简介
- socket 由浅入深系列------ 原理(一)
- SDWebImage源码学习之由浅入深一
- spring源码系列(一)sring源码编译 spring源码下载 spring源码阅读
- 《Spring Security教程系列》一.Spring Security简介
- 【Spring系列】——Spring framework简介(一)
- spring系列(一)——简介和IOC
- spring系列文章(一)AOP源码分析
- Spring 系列:Spring 框架简介
- Spring 系列: Spring 框架简介
- Spring 系列: Spring 框架简介
- Oracle 树操作(select…start with…connect by…prior)
- poj 2503 Babelfish(trie树)
- JIN学习一、Android使用已有C/C++代码、第三方SO库的方法
- FPGA学习笔记(转)
- 对HashMap迭代的理解
- Spring源码由浅入深系列一 简介
- 双向、循环链表
- leetcode--single number.
- NGUI v3.6.8 (Jul 13, 2014)与旧版相比的变化
- zoj 2876 Phone List(tire 树)
- TCP/IP报文格式
- 第四十天 一乐在其中—Android的小游戏打飞机(四)添加敌机
- hadoop2.4.1 spark1.0.1编译
- Hardwood Species