Spring是在Rod Johnson的<Expert One-On-One J2EE Development and Design >的基础上衍生而来的.主要目的是通过使用基本的javabean来完成以前只能用EJB完成的事情降低企业应用的复杂性.这一系列源码学习是基于Spring-4.3.11版本的. 一.Spring的整体架构 如图所示,spring可以被总结为一下几个部分: (1)Core Container 为Spring的核心容器,包含Beans,Core,Context和SpEL…
简述 关于ORM的定义,我们引用了一下百度百科给出的定义,总体来说ORM就是提供给开发人员API,方便操作关系型数据库的,封装了对数据库操作的过程,同时提供对象与数据之间的映射功能,解放了开发人员对访问数据库交互的维护,大大提高工作效率. 我们以传统JDBC编程中的查询操作为例进行说明,其主要步骤如下: (1)注册数据库驱动类,明确指定数据库URL地址.数据库用户名.密码等连接信息. (2)通过DriverManager打开数据库连接. (3)通过数据库连接创建Statement对象. (4)通…
一.Spring整体架构图 关于Spring的基本介绍就不再赘述了,先展示Spring框架的整体架构图如下示: 二.Spring结构介绍 Spring主要分为Core Container.Test.Data Access.Web.AOP.Aspects等几个大模块,而Spring最核心的模块就是Core Container之后的Beans.Core.Context三个模块 Core:包含Spring基本的核心工具类,Spring的其他组件都需要使用这个包中的工具类,是最基本的核心包 Beans:…
Spring源码学习--ClassPathXmlApplicationContext(一) spring源码学习--FileSystemXmlApplicationContext(二) spring源码学习--AbstractXmlApplicationContext(三) Spring源码学习--XmlWebApplicationContext(四) Spring源码学习--AbstractRefreshableWebApplicationContext(五) Spring源码学习--Abst…
写在前面 上文Spring源码学习-容器BeanFactory(三) BeanDefinition的创建-解析Spring的默认标签对Spring默认标签的解析做了详解,在xml元素的解析中,Spring的整体思路就是按部就班的读取标签并把数据放入一个map集合中以备后用. ps:以前在看别人写博客时没有很注意,到自己写才发现:博文一长,如何去维持文章的可读性,让读者在阅读时理清整篇文章的脉络实在是一件很难的事情.上篇文章就是如此,我自己回头去读时都难以去顺畅的学习,何况他人,甚是惭愧.也尝试数…
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 上一章和各位一起看了一下springAOP的工作流程,当我们给出AOP相关的配置以后,直接从IOC容器中拿出来的就是已经加强过的bean.这说明spring在这个过程中一定做了什么. 本章我们就一起来看一下spring是如何完成对bean的增强的,首先我们来看一下,FactoryBean接口中一个方法的定义. public i…
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 上一章当中我没有提及具体的搭建环境的步骤,一个是不得不承认有点懒,另外一个我觉得如果上章所述的那些环境都还不会搭建的话,研究spring的源码还有些过早. 如果你有兴趣的话,相信已经搭建好了学习研究的环境,接下来就可以进入正题了. 网上也有很多关于spring源码学习的文章以及帖子,讲的也都不错,但是有些可能高估了读者的能力,…
写在前面 上文Spring源码学习-容器BeanFactory(二) BeanDefinition的创建-解析前BeanDefinition的前置操作中Spring对XML解析后创建了对应的Document对象,处理完profile后终于到了标签的解析,这篇文章主要来探究Spring默认标签的解析. 1.4 BeanDefinition的创建 - 处理Spring默认标签 protected void parseBeanDefinitions(Element root, BeanDefiniti…
写在前面 上文 Spring源码学习-容器BeanFactory(一) BeanDefinition的创建-解析资源文件主要讲Spring容器创建时通过XmlBeanDefinitionReader读取配置文件,将其经过编码并经过系列处理后,交给了同类中的doLoadBeanDefinitions()方法,这次就直接进入这个方法,来看看Spring到底是如何创建BeanDefinition的. 1.2 BeanDefinition的创建 - 创建BeanDefinition前的最终准备 首先进入…
写在前面 从大四实习至今已一年有余,作为一个程序员,一直没有用心去记录自己工作中遇到的问题,甚是惭愧,打算从今日起开始养成写博客的习惯.作为一名java开发人员,Spring是永远绕不过的话题,它的设计精巧,代码优美,值得每一名开发人员学习阅读. 在我最开始学习javaEE时,第一次接触Spring是从一个S(Struts)S(Spring)H(Herbinate)的框架开始.由java原生开发到框架开发转换过程中,那时我的印象里Struts负责控制层,herbinate负责数据层,而Sprin…