Spring源码加载BeanDefinition过程】的更多相关文章

本文主要讲解Spring加载xml配置文件的方式,跟踪加载BeanDefinition的全过程. 源码分析 源码的入口 ClassPathXmlApplicationContext构造函数 new ClassPathXmlApplicationContext(“spring.xml”)用于加载CLASSPATH下的Spring配置文件,将配置文件传给构造函数,然后调用类内部的另外一个重载方法. 从构造函数中,可以看到一共做了3件事 super(parent) super(parent)的作用是为…
最近看了一下Spring源码加载的简装版本,为了更好的理解,所以在绘图的基础上,进行了一些总结.(图画是为了理解和便于记忆Spring架构) Spring的核心是IOC(控制反转)和AOP(面向切面编程),首先我们先一步一步的来了解IOC的实现: 一:首先是第一个模型:Model1:      种子 =  BeanDefinition        工厂=BeanFactory 1.此处我们可以看见两个对象 BeanDefinition和BeanFactory,此处把创建对象的权限交给了Bean…
obtainFreshBeanFactory()方法概述 定义BeanFactory,并加载以下两种bean的定义,装配到BeanFactory: 1.配置文件中定义的bean 2.通过<context:component-scan base-package="..." />配置的路径下的,且经过相应注解标注的所有类,注解包括:@Controller.@Service.@Component.@Repository 源码解读 主要流程总结: 1.创建BeanFactory:D…
源代码和注释放在了github上,包括加载过程的注释和getBean部分的 地址: https://github.com/lvxingzhi/spring-framework-4.3.9-note.git…
BeanFactory BeanFactory 是 Spring IoC 容器的具体实现,是 Spring 容器的核心接口. DefaultListableBeanFactory XmlBeanFactory 继承自 DefaultListableBeanFactory 而 DefaultListableBeanFactory 是整个 bean 加载的核心部分.是 Spring 注册及加载的默认实现. 类层级结构图  AliasRegistry:定义对 alias 的简单增删改查等操作. Si…
一.BeanDefinition 1. bean定义都定义了什么? 2.BeanDefinition的继承体系  父类: AttributeAccessor: 可以在xml的bean定义里面加上DTD文件里面没有的属性,如 <bean id="cbean" class="com.study.spring.samples.CBean" name="leeSamll" age="18"> <constructor…
1.org.springframework.web.context.ContextLoaderListener 一个ServletContextListener,web容器启动监听器 1.1内有成员ContextLoader,当contextInitialized时,调用this.contextLoader.initWebApplicationContext(event.getServletContext()); 2.org.springframework.web.context.Context…
回顾总结 到目前为止,Spring源码中AbstractApplicationContext#refresh方法的已经解读到第11个方法finishBeanFactoryInitialization,前10个方法介绍了: BeanFactory的准备,创建,刷新,个性化BeanFactory的扩展点,自定义属性解析: 环境信息Environment的加载(包括环境变量.系统变量等): BeanDefinition的加载,解析,自定义xml的方式: BeanFactoryPostProcessor…
前言:在[spring源码分析]IOC容器初始化(一)文末中已经提出loadBeanDefinitions(DefaultListableBeanFactory)的重要性,本文将以此为切入点继续分析. AbstractXmlApplicationContext#loadBeanDefinitions(DefaultListableBeanFactory) protected void loadBeanDefinitions(DefaultListableBeanFactory beanFacto…
前言 Spring框架之于 JavaEE 程序员来说,犹如锄头之于农民.Java 程序员每天都要使用Spring框架,Spring框架也确实是个可手的工具. 最初使用Spring的时候,我们需要配置maven xml的依赖关系,引入 spring-beans,spring-core,spring-webmvc等. 还要在spring.xml中配置bean ,配置 IOC,配置事务管理,配置数据源.让一个项目跑起来都不是一件简单的事,特别是对于新手来说.经常碰到各种错误. 然而当现在有了sprin…