Resource定位
以编程方式用DefaultListableBeanFactory,首先定义个Resource来定位容器使用的BeanDefinition。这时使用的是ClassPathResource,意味着Spring会在类路径中寻找以文件形式存在的BeanDefinition信息:
ClassPathResource res = new ClassPathResource("bean.xml");
这个定义的Resource并不能让DefaultListableBeanFactory直接使用,Spring会通过BeanDefinitionReader来对这些信息处理。
现在可以看出,使用ApplicationContext的好处,因为在ApplicationContext中,Spring已经为我们提供了一系列加载不同Resource的读取器的实现。
DefaultListableBeanFactory只是一个纯粹的IoC容器,需要配置合适的读取器才能完成这些功能。
有利有弊,使用DefaultListableBeanFactory这种更底层的容器,却能提高我们定制IoC容器的灵活性。
1、FileSystemXmlApplicationContext可以从文件系统载入Resource
2、ClassPathXmlApplicationContext可以从class path载入Resource
3、XmlWebApplicationContext可以在Web容器中载入Resource
FileSystemXmlApplicationContext是一个支持XML定义BeanDefinition的ApplocationContext,并且可以指定以文件形式的BeanDefinition的读入,这些文件可以使用文件路径和URL定义来表示。在测试环境和独立应用环境中,这个ApplicationContext是非常有用的。
分享到:
相关推荐
Spring BeanDefinition 类图结构,形象展示Spring是如何存储Bean信息的。通过类图和源码更好的理解Spring BeanDefinition存储结构
在本文中,我将讨论棘手的Spring Boot bean定义覆盖机制。 为了使您对该主题更加清楚,让我们从小测验开始。请看下一个简单的例子。 因此,我们有2种配置,它们使用名称beanName实例化bean,在主应用程序中,我们仅...
Spring中的BeanDefinition是核心概念,它是Spring IOC容器的基础,用于描述Bean的元数据,包括Bean的行为、依赖关系和其他配置信息。BeanDefinition包含了Bean的全限定类名、作用域、生命周期回调方法、依赖的其他...
在Spring框架中,BeanDefinition是核心组件之一,它定义了bean的基本信息和元数据,包括bean的类、作用域、依赖关系、初始化方法等。在Spring容器启动时,配置文件或注解中的bean定义会被解析成BeanDefinition对象,...
Spring 源码学习五:BeanDefinition 装载 1 在 Spring 框架中,BeanDefinition 是一个核心概念,它描述了一个 Bean 的定义,包括其依赖项、作用域、生命周期等信息。在本篇文章中,我们将深入探讨 Spring 的源码,...
在深入Spring源码的学习过程中,我们主要关注BeanDefinition的装载过程。BeanDefinition是Spring框架的核心概念,它包含了关于Bean的所有元数据,如类名、属性、依赖关系等。在Spring初始化时,会读取XML配置文件,...
BeanDefinition基础信息讲解 BeanDefinition是Spring框架中一个非常重要的概念,它是Bean的元数据,用于描述Bean的各种信息,例如Bean的名称、类名称、Scope、依赖关系等。在Spring框架中,BeanDefinition是一个...
BeanDefinition就是实现这一概念的关键元素,它包含了关于一个bean的所有元信息,用于描述bean的属性、行为以及与其他bean的关系。 在BeanFactory篇中,我们了解到BeanFactory在启动时会从配置元信息(通常是XML...
Spring Bean Factory, Bean definition 结构图;processOn
《深入解析Spring框架中的BeanDefinition》 在Spring框架中,BeanDefinition是核心概念之一,它定义了Bean的元数据,包括Bean的类名、初始化方法、依赖关系、属性值等关键信息。本教程将深入探讨BeanDefinition的...
BeanDefinition接口提供了获取和设置这些属性的方法,例如getBeanClassName()用于获取Bean的类名,setParentName()用于设置父BeanDefinition的名称,isSingleton()检查Bean是否为单例,等等。通过BeanDefinition,...
- **BeanDefinition的继承体系**:BeanDefinition的继承体系主要由几个关键接口和类构成,包括`BeanDefinition`接口、`AbstractBeanDefinition`抽象类等。`BeanDefinition`接口定义了Bean定义的基本行为,而`...
首先,我们需要从 beanDefinitionMap 中通过 beanName 获得 BeanDefinition,然后从 BeanDefinition 中获得 beanClassName,最后通过反射初始化 beanClassName 的实例 instance。构造函数从 BeanDefinition 的 ...
在Spring框架中,配置类解析是构建应用上下文的关键步骤,它涉及到BeanDefinition的生成、配置类的导入以及Bean的定义。在《Spring配置类解析(下)》中,主要探讨了配置类解析过程的多轮循环以及在这个过程中如何加载...
总的来说,Spring通过读取配置文件(XML或注解形式),解析并生成BeanDefinition,然后根据BeanDefinition实例化bean并进行依赖注入,从而实现了对象的管理。理解这一过程有助于我们更好地设计和使用Spring框架,...
本文主要探讨了Spring的核心API,包括BeanFactory、BeanDefinition以及事务管理等关键组件,旨在帮助开发者深入理解Spring的工作机制,从而编写出更高效、更可维护的Java应用。 首先,BeanFactory是Spring框架的...
4. **BeanDefinition的创建**:对于找到的每个类,Spring会创建一个对应的BeanDefinition对象,该对象包含了Bean的完整信息,如类名、依赖关系等。BeanDefinition是Spring容器理解Bean的基础。 5. **注册Bean...
Bean 注册与管理 解析得到的 `BeanDefinition` 会被添加到 `DefaultListableBeanFactory` 中,每个 `BeanDefinition` 都有一个唯一的 ID 或名称。当通过 `bf.getBean("testBean")` 获取 Bean 时,`...
3. **BeanDefinition创建**:对于每个找到的类,Spring会创建一个`BeanDefinition`对象,存储类的信息,如类名、依赖关系、初始化方法等。 二、BeanDefinition定义 `BeanDefinition`是Spring中表示Bean元数据的...
通过设置资源解析器和环境、设置配置路径、初始化 BeanFactory、加载 Bean 定义资源、解析 Bean 定义资源和注册 BeanDefinition,这些步骤组成了 IOC 初始化流程。 在 Spring 框架中,IOC 容器是核心组件,负责管理...