
spring4源码解读
文章平均质量分 84
chyohn
这个作者很懒,什么都没留下…
展开
-
Spring4.3.x xml配置文件搜索和解析过程
绪论spring在创建BeanFactory时会把xml配置文件和注解信息转换为一个个BeanDefinition对象,BeanDefinition对象存储的是单个bean的配置信息,比如依赖类、scope、是否延迟加载等等。因此,研究配置文件的解析过程,对学习spring也是重要的一点。 下面我们通过XmlWebApplicationContext来研究Spring配置文件的解析。获取原创 2024-06-28 14:52:57 · 1233 阅读 · 1 评论 -
Spring4.3.x 浅析xml配置的解析过程(8)——解析context命名空间之component-scan标签
概述Spring context命名空间有property-placeholder、property-override、annotation-config、component-scan、load-time-weaver、spring-configured、mbean-export和mbean-server 8个标签。property-placeholder和property-override标签的解原创 2017-02-09 12:25:59 · 2955 阅读 · 1 评论 -
Spring4.3.x 浅析xml配置的解析过程(9)——解析aop命名空间之config标签
概述spring为简化AOP在xml文件中的定义而创建了一个http://www.springframework.org/schema/aop命名空间,这里我简称为aop命名空间。spring在解析xml配置文件内容的过程中遇到非默认命名空间时,会查找系统中所有META-INF目录下的spring.handlers文件中与命名空间对应的处理器,我们可以在spring-aop-x.x.x-RELEAS原创 2017-02-09 12:34:29 · 1591 阅读 · 0 评论 -
Spring4.3.x 浅析xml配置的解析过程(10)——解析aop命名空间之aspectj-autoproxy标签
概述Spring的AOP命名空间提供了<aop:config>、<aop:aspectj-autoproxy>和<aop:scoped-proxy>三大标签。前两个标签的作用是想指定pointcut(切点)提供adivce(增强)处理,而<aop:scoped-proxy>的作用是对生命周期短的bean提供装饰,使生命周期短的bean能被生命周期长的bean正确调用。这一篇不会探讨<aop:scop原创 2017-02-09 12:35:43 · 1873 阅读 · 0 评论 -
Spring4.3.x 浅析xml配置的解析过程(11)——解析aop命名空间之scoped-proxy标签
概述Spring为生命周期长的bean调用生命周期短的bean提供了三种解决方案。第一种是使用默认命名空间(beans)的<look-up>标签;第二种是使用context命名空间的<context:component-scan>解析@Scope注解;第三种是使用AOP命名空间的<aop:scoped-proxy>标签装饰生命周期短的bean。<aop:scoped-proxy>的使用如下<bean原创 2017-02-09 12:38:20 · 1915 阅读 · 0 评论 -
Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场
概述spring创建bean时需要一个重要的对象,那就是BeanDefinition对象,spring在创建BeanFactory时会把xml配置文件和注解信息转换为一个个BeanDefinition对象,BeanDefinition对象存储的是单个bean的配置信息,比如依赖类、scope、是否延迟加载等等,对于BeanDefinition的创建过程,可以阅读我的Spring4.3.x 浅析xml原创 2017-02-10 12:02:09 · 1672 阅读 · 0 评论 -
Spring4.3.x 容器中bean的创建过程(2)——实例化Bean
概述在Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场一篇中我们找到了初始化bean的主要场所在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中,在这个方法中首先调用createBeanInstance方法创建bean的实例;然后调用populateBean方法设置bean的属性;接着调用initializ原创 2017-02-10 12:04:50 · 6755 阅读 · 1 评论 -
Spring4.3.x 容器中bean的创建过程(3)—— 初始化bean的属性值
概述在Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场一篇中我们找到了初始化bean的主要场所在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中,在这个方法中首先调用createBeanInstance方法创建bean的实例;然后调用populateBean方法设置bean的属性;接着调用initializ原创 2017-02-10 12:07:39 · 860 阅读 · 0 评论 -
Spring4.3.x 容器中bean的创建过程(4)—— 执行bean的初始化方法
概述在Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场一篇中我们找到了初始化bean的主要场所在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中,在这个方法中首先调用createBeanInstance方法创建bean的实例;然后调用populateBean方法设置bean的属性;接着调用initializ原创 2017-02-10 12:09:33 · 645 阅读 · 0 评论 -
Spring4.3.x 容器中bean的创建过程(5)—— 注册bean的销毁方法
概述在Spring4.3.x 容器中bean的创建过程(1)——走进初始化bean的主要战场一篇中我们找到了初始化bean的主要场所在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中,在这个方法中首先调用createBeanInstance方法创建bean的实例;然后调用populateBean方法设置bean的属性;接着调用initializ原创 2017-02-10 12:11:45 · 1442 阅读 · 0 评论 -
Spring4.3.x 浅析xml配置的解析过程(7)——解析context命名空间之annotation-config标签
概述Spring context命名空间有property-placeholder、property-override、annotation-config、component-scan、load-time-weaver、spring-configured、mbean-export和mbean-server 8个标签。上一节探讨了 property-placeholder和property-overr原创 2017-02-09 12:09:28 · 1331 阅读 · 0 评论 -
Spring4.3.x 浅析xml配置的解析过程(6)——解析context命名空间之property-placeholder和property-override标签
概述在上一篇解析自定义命名空间的标签 中,我们已经知道解析自定义命名空间的标签需要用到NamespaceHandler接口的实现类,并且知道spring是如何获取命名空间对应的命名空间处理器对象的。因此我们很容易就能在spring-context包下的META-INF/spring.handlers文件中找到http://www.springframework.org/schema/context命原创 2017-02-09 12:00:41 · 3044 阅读 · 0 评论 -
Spring4.3.x 浅析xml配置的解析过程(3)——使用DocumentLoader创建Document对象
准备工作Spring的XmlBeanDefinitionReader通过ResourceLoader创建了Resource对象后,又如何处理Resource对象呢?XmlBeanDefinitionReader拿到Resource对象后,会调用它的loadBeanDefinitions(Resource resource)方法,下面我们就根据这个方法为入口来探讨这个问题,见下面的代码。 pub原创 2017-02-08 12:03:48 · 2396 阅读 · 0 评论 -
Spring4.3.x 浅析xml配置的解析过程(2)——使用ResourceLoader创建Resource对象
概述在走进XmlBeanDefinitionReader中已经讲过XmlBeanDefinitionReader把xml配置信息转换成一个一个的BeanDefinition对象的大致过程,在这个过程中还有几个细节没有讲到,这一篇,就来探讨其中一个细节——ResourceLoader如何根据指定的location生成Resource对象。下面我们从XmlBeanDefinitionReader 使用x原创 2017-02-08 12:02:41 · 2827 阅读 · 0 评论 -
Spring4.3.x 容器在web应用中的初始化过程
概述Spring在web应用中的默认容器类为XmlWebApplicationContext,这个容器类通过xml文件获取所有的配置信息。它的继承结构如下图,(点此查看大图) 在web应用中,不管是ContextLoaderListener,还是DispatcherServlet初始化的时候,都是以XmlWebApplicationContext为默认容器。在下面的研究中,我将以ContextLo原创 2017-02-08 11:56:39 · 3085 阅读 · 0 评论 -
Spring4.3.x 容器的刷新过程
概述Spring容器体系的继承结构图如下。从图中可以看出抽象类AbstractApplicationContext是所有容器类的父类。AbstractApplicationContext实现了它继承的所有接口方法,并定义了三个用于管理BeanFactory对象的抽象方法,如下 //--------------------------------------------原创 2017-02-08 11:52:22 · 1475 阅读 · 1 评论 -
Spring4.3.x 浅析xml配置的解析过程(1)——使用XmlBeanDefinitionReader解析xml配置
概述Spring默认的BeanFactory是DefaultListableBeanFactory类,spring创建DefaultListableBeanFactory对象后,会把配置信息转换成一个一个的BeanDefinition对象,并把这些BeanDefinition对象注册到DefaultListableBeanFactory对象中,以供bean工厂创建bean实例。BeanDefinit原创 2017-02-08 12:00:34 · 6587 阅读 · 0 评论 -
Spring4.3.x 浅析xml配置的解析过程(4)——解析bean标签及其所有子标签
概述在使用ResourceLoader创建Resource对象一节中,我们探讨了Spring如何正确的查找我们指定的配置文件并为配置文件生成Resource对象。在使用DocumentLoader创建Document对象一节中,我们又已经解析了Spring通过xerces如何把Resource对象中的XML内容转换成Document对象。在浅析Spring4使用XmlBeanDef原创 2017-02-09 11:35:43 · 1972 阅读 · 0 评论 -
Spring4.3.x 浅析xml配置的解析过程(5)——解析自定义命名空间的标签
概述在上一篇解析<bean>标签及其所有子标签我们详细探讨了如何使用<bean>标签来创建一个BeanDefintion对象。这一篇我们开始探讨一下spring如何处理其它命名空间的xml标签,比如spring扩展的http://www.springframework.org/schema/context、http://www.springframework.org/schema/p和http://原创 2017-02-09 11:57:42 · 2902 阅读 · 0 评论