![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
-yanhui-
这个作者很懒,什么都没留下…
展开
-
Spring源码解析笔记4——bean的加载
首先先说一下FactoryBean。Spring中的两种bean,一种是普通的Bean,另外一种是FactoryBean,FactoryBean是Spring留给使用者自己定义实例化bean的逻辑的接口。FactoryBean接口源码:package org.springframework.beans.factory;public interface FactoryBean {原创 2018-01-21 14:47:02 · 308 阅读 · 0 评论 -
Spring源码解析笔记8——容器的功能扩展ApplicationContext
ApplicationContext包含BeanFactory的所有功能,并且可以对BeanFactory现有的功能进行扩展。绝大多数典型的企业应用和系统,使用的都是ApplicationContext而不是直接使用BeanFactory。下面看一下ApplicationContext相对于BeanFactory扩展了哪些功能。//BeanFactory的加载配置文件的方式:BeanFa原创 2018-01-30 16:46:17 · 214 阅读 · 0 评论 -
Spring源码解析笔记3——自定义标签的解析
继续笔记1中结尾处的自定义标签解析,delegate.parseCustomElement(ele)方法。自定义标签:Spring提供了一个可扩展Schema的支持,扩展Spring自定义标签的步骤如下。创建一个需要扩展的组件。定义一个XSD文件描述组件内容。创建一个文件,实现BeanDefinitionParser接口,用来解析XSD文件中的定义和组件定义。创建一个Handler原创 2018-01-21 11:00:46 · 220 阅读 · 0 评论 -
Spring源码解析笔记2——默认标签的解析
继续前面的this.parseDefaultElement(ele, delegate)讨论。//分别对4种不同的标签(import,alias,bean,beans)做了不同的处理。private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { if(deleg原创 2018-01-10 16:17:56 · 587 阅读 · 0 评论 -
Spring源码解析笔记1——整体架构+配置文件读取
Spring整体架构1.Core Container核心容器,包含Core,Beans,Context,Expression Language.Core和Beans提供最基本的IOC(控制反转)和依赖注入。Core模块主要包含Spring基本框架的核心工具类。Beans模块包含访问配置文件,创建和管理bean,以及Inversion of Control/Dependency Inje原创 2018-01-09 15:18:49 · 778 阅读 · 0 评论 -
Spring源码解析笔记9——容器的功能扩展BeanFactory的后处理(BeanFactoryPostProcessor)
BeanFactoryPostProcessor接口跟BeanPostProcessor类似,可以对bean的定义(配置元数据)进行处理。SpringIoc容器允许BeanFactoryPostProcessor在容器实际实例化任何其他的bean之前读取配置元数据,并有可能修改它。如果想改变实际的bean实例(例如从配置元数据创建的对象),那么最好使用BeanPostProcessor。B原创 2018-01-31 14:27:50 · 453 阅读 · 0 评论 -
Spring源码解析笔记10——AOP
1.AOP使用实例:创建用于拦截的bean。public class TestBean { private String testStr = "testStr"; public String getTestStr() { return testStr; } public void setTestStr(String testStr)...原创 2018-04-15 08:28:40 · 150 阅读 · 0 评论 -
Spring源码解析笔记7——bean的初始化
在bean的配置时,bean中有一个init-method的属性,这个属性的作用是在bean实例化前调用init-method指定的方法来根据用户业务进行相应的实例化。这一步主要是通过this.initializeBean(beanName, existingBean, bd)方法来实现。//源码如下:protected Object initializeBean(final String原创 2018-01-24 14:06:37 · 281 阅读 · 0 评论 -
Spring源码解析笔记6——创建bean
继续spring源码笔记4中的doCreateBean方法:protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, Object[] args) throws BeanCreationException { BeanWrapper instanceWrapper =原创 2018-01-23 10:20:00 · 782 阅读 · 0 评论 -
Spring源码解析笔记5——循环依赖的解决
什么是循环依赖:循环依赖就是循环引用,两个或多个bean相互之间持有对方。例如: public class TestA { private TestB testB; public void a() { testB.b(); } public TestB getTestB() { return te原创 2018-01-21 19:21:17 · 266 阅读 · 0 评论