
Spring
文章平均质量分 71
-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 · 354 阅读 · 0 评论 -
Spring源码解析笔记8——容器的功能扩展ApplicationContext
ApplicationContext包含BeanFactory的所有功能,并且可以对BeanFactory现有的功能进行扩展。绝大多数典型的企业应用和系统,使用的都是ApplicationContext而不是直接使用BeanFactory。下面看一下ApplicationContext相对于BeanFactory扩展了哪些功能。 //BeanFactory的加载配置文件的方式: BeanFa原创 2018-01-30 16:46:17 · 259 阅读 · 0 评论 -
Spring源码解析笔记3——自定义标签的解析
继续笔记1中结尾处的自定义标签解析,delegate.parseCustomElement(ele)方法。 自定义标签:Spring提供了一个可扩展Schema的支持,扩展Spring自定义标签的步骤如下。 创建一个需要扩展的组件。 定义一个XSD文件描述组件内容。 创建一个文件,实现BeanDefinitionParser接口,用来解析XSD文件中的定义和组件定义。 创建一个Handler原创 2018-01-21 11:00:46 · 253 阅读 · 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 · 641 阅读 · 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 · 837 阅读 · 0 评论 -
Spring源码解析笔记9——容器的功能扩展BeanFactory的后处理(BeanFactoryPostProcessor)
BeanFactoryPostProcessor接口跟BeanPostProcessor类似,可以对bean的定义(配置元数据)进行处理。SpringIoc容器允许BeanFactoryPostProcessor在容器实际实例化任何其他的bean之前读取配置元数据,并有可能修改它。 如果想改变实际的bean实例(例如从配置元数据创建的对象),那么最好使用BeanPostProcessor。 B原创 2018-01-31 14:27:50 · 491 阅读 · 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 · 199 阅读 · 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 · 340 阅读 · 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 · 869 阅读 · 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 · 318 阅读 · 0 评论