pring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示 这些模块被总结为以下几个部分: Core Container Core Container(核心容器)包含有Core.Beans.Context和Expression Language模块 Core和Beans模块是框架的基础部分,提供IoC(转控制)和依赖注入特性.这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖…
传送门 可以加载XML两种方法 使用 BeanFactory 加载 XML BeanFactory bf = new XmlBeanFactory(new ClassPathResource("applicaitonContext.xml")); Ps:因为我是跟着<Spring源码深度解析>学习的,而这本书出版在13年9月,这一种方法在新的Spring版本中已经废弃掉了,取而代之的是下面的方法;但既然学了,那就还是记录一下,学习一下开发者的思想也是不错的. 使用 Appl…
前言 有一个Spring源码阅读环境是学习Spring的基础.笔者借鉴了网上很多搭建环境的方法,也尝试了很多,接下来总结两种个人认为比较简便实用的方法.读者可根据自己的需要自行选择. 方法一:搭建基础Spring项目 思路就是创建一个最基本的spring项目,通过下载源码,可以实现阅读源码的需求.优点是非常简单快捷,缺点是无法对源码进行注释和二次开发. 1. 在IDEA中创建一个maven项目 这里我们利用模板创建一个web项目 按照提示填写相关信息,然后一直next即可. 2. 创建包目录结构…
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 最近工作很忙,但当初打算学习spring源码的事已经基本告一段落,只是一直没时间写这些记录性的文字. 本次鄙人学习spring的源码,有点囫囵吞枣的感觉,其实这样并非就不好,spring作为一个应用平台,自然不是那么好研究透彻的,而且也不太可能有人把spring的源码全部清楚的过上一遍,哪怕是spring的缔造者.不过最主要的…
写在前面 上文Spring源码学习-容器BeanFactory(三) BeanDefinition的创建-解析Spring的默认标签对Spring默认标签的解析做了详解,在xml元素的解析中,Spring的整体思路就是按部就班的读取标签并把数据放入一个map集合中以备后用. ps:以前在看别人写博客时没有很注意,到自己写才发现:博文一长,如何去维持文章的可读性,让读者在阅读时理清整篇文章的脉络实在是一件很难的事情.上篇文章就是如此,我自己回头去读时都难以去顺畅的学习,何况他人,甚是惭愧.也尝试数…
Spring 源码学习过程: 一.搞明白IOC能做什么,是怎么做的  1. 搞明白IOC能做什么? IOC是用为用户创建.管理实例对象的.用户需要实例对象时只需要向IOC容器获取就行了,不用自己去创建,从而达到与具体类解耦.  2. IOC是怎么做到的,即它的实现步骤是怎么样的? 2.1 用户配置bean定义 我们使用Spring IOC时有几种方式来配置bean定义呢? xml的方式: <bean id="abean" class="com.study.spring.…
前文: -------------------------------------------------------------------------------------------------------------------- 近期,买了一本书<Spring源码深度解析>--郝佳 非常不错的Spring书籍,讲解通俗易懂,而且,例子详细严禁,由浅入深,可以让读者一步步跟着学习,读了前部分后很有收获,推荐给大家,共同学习. 人们常抱怨,没有老师跟着学习,没人教,身边人能力不行,等等…
最近想拿出一部分时间来学习一下spring的源码,还特意买了一本书结合来看,当然主要是学习并跟着作者的思路来踏上学习spring的源码的道路,特意在此记录一下,<spring源码深度解析> 一.spring的结构组成 从简单的例子入手,从实际的开发中去解析.学习源码,结合工作中的内容,这样才能更好的.更加深入的学习,go go go!!! 1.容器的基本用法与功能分析 容器基本用法,代码如下: public class MyTestBean { private String testStr =…
LZ以前一直觉得,学习spring源码,起码要把人家的代码整体上通读一遍,现在想想这是很愚蠢的,spring作为一个应用平台,不是那么好研究透彻的,而且也不太可能有人把spring的源码全部清楚的过上一遍,哪怕是spring的缔造者.我们确实没有必要把源码全部过一遍,如果在看spring源码的过程中,能学习到东西是最关键的,说实话,下面的很多东西也是我边看源码,边看大神的解读写出来的,基本不属于原创,但是改变自己的思想,尽量从源码出发,不要一出现问题就只能寄所有希望于百度,如果能做到这点,最好不…
Spring 源码学习--Aop 什么是 AOP 以下是百度百科的解释:AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程通过预编译的方式和运行期动态代理实现程序功能的统一维护的一种技术. AOP 的原理 AOP 的原理是什么?估计大家都知道了无非就是通过代理模式来为目标对象生产出一个代理对象来,并将相应的逻辑插入到目标方法的前后等等.如果别人这么问,这么回答没毛病,但是这么回答完发现 AOP 也没什么可说的了不是吗.毕竟确实原理就是动态代理.但是 S…