在上文中我们已经知道了Spring如何从我们给定的位置加载到配置文件,并将文件包装成一个Resource对象.这篇文章我们将要探讨的就是,如何从这个Resouce对象中加载到我们的容器?加载到容器后又是什么样子呢? 大家可以跟着我一步步来,一定要把Spring啃完,加油~ 文章目录 前期准备: 开始解析: 总结: 前期准备: 上篇文章中,我们已经跟踪到了org.springframework.beans.factory.support.AbstractBeanDefinitionReader的l…
想写Spring的源码方面的东西想了好久了,之前花了一段时间学习了SpringCloud,现在总算对SpringCloud有了一个大概的了解,从今天开始好好读一篇Spring的源码,结合书本跟网上的一些资料,希望能坚持下去,完成这一系列的文章,给自己加油!!!! 版本是基于5.1.X的,大家在阅读的时候请注意,不过因为是Spring的一些基础流程,估计版本间差异也不会太大 关于配置的加载主要可以分为两种: 注解式配置的加载 XML配置加载 注解配置相对于XML更加简单,其过程主要在于注解的解析,…
public class Test { public static void main(String[] args) throws Exception { BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("bean.xml")); Person person = beanFactory.getBean("person",Person.class); person.info(); }…
目录 继承层次图概览 ConfigurableApplicationContext分析 AbstractApplicationContext GenericApplicationContext GenericXmlApplicationContext StaticApplicationContext ResourceAdapterApplicationContext GenericGroovyApplicationContext AnnotationConfigApplicationContex…
初始化IoC容器(Spring源码阅读) 我们到底能走多远系列(31) 扯淡: 有个问题一直想问:各位你们的工资剩下来会怎么处理?已婚的,我知道工资永远都是不够的.未婚的你们,你们是怎么分配工资的? 毕竟,对自己的收入的分配差不多体现了自己的现状,以及自己对自己未来有什么样的期许~ 主题: 本人在阅读源码基本参考了<Spring技术内幕:深入解析 Spring架构与设计原理>,很不错的书籍,建议大家阅读. 初始化IoC容器:1,resource定位 2,BeanDefinition载入 3,把…
idea搭建spring源码阅读环境 安装gradle Github下载Spring源码 新建学习spring源码的项目 idea搭建spring源码阅读环境 安装gradle 在官网中下载gradle二进制文件下载地址…
前言 有一个Spring源码阅读环境是学习Spring的基础.笔者借鉴了网上很多搭建环境的方法,也尝试了很多,接下来总结两种个人认为比较简便实用的方法.读者可根据自己的需要自行选择. 方法一:搭建基础Spring项目 思路就是创建一个最基本的spring项目,通过下载源码,可以实现阅读源码的需求.优点是非常简单快捷,缺点是无法对源码进行注释和二次开发. 1. 在IDEA中创建一个maven项目 这里我们利用模板创建一个web项目 按照提示填写相关信息,然后一直next即可. 2. 创建包目录结构…
我们到底能走多远系列(33) 扯淡: 各位:    命运就算颠沛流离   命运就算曲折离奇   命运就算恐吓着你做人没趣味   别流泪 心酸 更不应舍弃   ... 主题: Spring源码阅读还在继续,上篇文章初始化IoC容器:摸我 事实上前面的IOC容器初始化只是建立了BeanDefinition数据映射,而依赖注入的过程是在向Ioc容器索要bean的时候发生的. getBean就是触发依赖注入的地方. 1,下面是AbstractBeanFactory的getBean实现.根据scop进行分…
上篇文章中我们介绍了准备Spring源码阅读环境的两种姿势,接下来,我们就要开始探寻这个著名框架背后的原理.Spring提供的最基本最底层的功能是bean容器,这其实是对IoC思想的应用,在学习Spring容器的实现原理之前,我们有必要先来了解一下什么是IoC,这就是本文的重点. 1. IoC IoC是随着近年来轻量级容器(Lightweight Container)的兴起而逐渐被很多人提起的一个名词,它的全称为Inversion of Control,中文通常译为控制反转.好莱坞原则"Don’…
承接前文Spring源码情操陶冶-自定义节点的解析,本文讲述spring通过context:component-scan节点干了什么事 ComponentScanBeanDefinitionParser#私有属性 罗列下context:component-scan可填的基础属性 private static final String BASE_PACKAGE_ATTRIBUTE = "base-package"; private static final String RESOURCE…