
Spring源码学习
文章平均质量分 71
spring源码阅读
毅本无言
这是个bug
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
spring aop
AOP是spring框架提供的非常重要的功能,让开发者可以非常方便地实现面向切面编程。一、AOP简介AOP(面向切面编程)可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,从而让开发者可以大幅度解耦代码,建立良好的代码结构。但当我们需要在大量的对象中引入公共行为的时候,OOP就无法方便的帮我们完成了。因为OOP描述的是一种层次关系,不是一种切面关系。例如,我们使用OOP完成了业务逻辑的开发,但是当我原创 2021-08-01 18:28:41 · 206 阅读 · 0 评论 -
spring bean生命周期管理
spring bean生命周期,spring框架老生常谈的话题,也是spring的基础知识。借此篇文章,结合spring框架部分源码,对spring针对bean的生命周期管理进行一个总结,加深记忆。1. 概述1.1 何为bean在讲解bean的周期之前,我们先了解下什么是bean。自我们接触java开始,bean就无处不在。那么bean是什么?这里有两种解释,一种是狭义的,一种是广义的。在解释前,先简单介绍下bean的历史背景。1.1.1 bean的来源与发展在java诞生后不久,开发者为了让.原创 2021-02-22 16:20:49 · 821 阅读 · 0 评论 -
spring与xml schema
本文从自定义spring配置文件入手,介绍了spring配置文件头的原理,和spring.schema、spring.handlers两个文件的作用。下面是一个简单的spring配置文件。我们可以看到,xml文件的前几行这些配置,其实都是xml 结构的定义,通过引入这些定义,使xml文件中的标签可以正常被解析。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/sch.原创 2021-02-15 18:32:32 · 434 阅读 · 1 评论 -
Spring源码学习(八)——Spring.Beans(五)
上一篇文章将xml的验证介绍完毕,这篇介绍doLoadBeanDefinitions方法实现的第二个功能,根据传入的inputSource创建相应的Document对象,这一功能是通过Document doc = this.documentLoader.loadDocument( inputSource, getEntityResolver(), this.errorHan...原创 2020-03-15 12:11:15 · 229 阅读 · 1 评论 -
Spring源码学习(一)—工具准备和环境搭建
一、为啥杠上你了,spring 马上研究生就要毕业了,之前自己的技术一直感觉非常渣,渣的自己见到代码都恐惧,因为没有自信去写代码,写出来的代码也没有任何成就感。虽然现在技术仍然很渣,但是现在有点不要脸了,渣就不要脸的先用,然后不要脸地再学呗。抱着这个心态,开始了自己技术学习的漫漫成长路。 阅读源码,和大师的作品进行面对面的交流,我觉得这是个非常好的学习方式。spring,这个神...原创 2018-06-20 18:39:44 · 311 阅读 · 0 评论 -
Spring源码学习(二)—spring概览
1.spring特性 一提到spring,想到最多的就是IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程),这两个特性不仅让spring框架风靡全球,更是改变了整个行业,所有java开发工程师甚至其他工程师,都开始直接或间接地学习并使用spring的这两大特性,高内聚和低耦合,一切资源变得合理、简单...原创 2018-06-20 18:39:28 · 266 阅读 · 0 评论 -
Spring源码学习(五)——Spring.Beans(二)
接上一篇,我们通过ClassUtils.forName()方法完成了对依赖注入接口的加载,接着DefaultListableBeanFactory实例化了一个静态map,这个map用于存储bean工厂实例和序列化id的映射关系。这个流程结束后,XmlBeanFactory的类初始化完成,然后就进入它的构造方法了。1.再看一下Demo中构造方法的参数,是一个ClassPa...原创 2018-06-21 14:38:01 · 272 阅读 · 0 评论 -
Spring源码学习(三)—spring-Beans(1)
从这篇起,正式开始对spring源码的阅读和学习。根据书上的流程,先对spring核心容器模块中的Beans模块下手。对于beans包来说,有两个非常核心的类,第一个是DefaultListableBeanFactory,该类实现默认的对bean的注册和加载,这也是控制反转特性的最基本的功能,第二个类是XmlBeanDefinitionReader,该类提供了spring的IOC容器中对x...原创 2018-06-20 18:37:55 · 1172 阅读 · 0 评论 -
Spring源码学习(四)——ClassUtils.forName()
接上一篇,本篇针对ClassUtils.forName()方法进行研究。源码是这样事儿的:public static Class<?> forName(String name, ClassLoader classLoader) throws ClassNotFoundException, LinkageError { Assert.notNull(name, "Nam...原创 2018-06-21 13:13:55 · 6037 阅读 · 5 评论 -
Spring源码学习(六)——Spring.Beans(三)
在XmlBeanFactory构造方法中,调用了XmlBeanDefinition的loadBeanDefinition(Resource resource)方法,这个是IOC容器对xml配置文件进行读取和解析的入口,那么进去看:public int loadBeanDefinitions(Resource resource) throws BeanDefinitionStoreEx...原创 2018-06-25 13:37:06 · 277 阅读 · 0 评论 -
Spring源码学习(七)——Spring.Beans(四)
上一篇说到loadBeanDefinitions这个方法主要干了三件事儿,第一件是获取xml文件的验证模式;第二件是加载xml文件,获得对应的Document;第三件是对bean信息进行注册。本篇先对第一件事进行介绍。 在程序中如何判定某个文件是xml文件,只凭后缀肯定是不行的,只有对文件中的格式进行验证,才能证明确实是xml文件,这也为接下来的程序提供了保障。常用的验证模式有D...原创 2018-07-04 17:28:28 · 260 阅读 · 0 评论