`
Yinny
  • 浏览: 296360 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

BeanFactory的简单介绍和使用

 
阅读更多
我们还是先来看一下BeanFactory的整体架构,看一下红框,我们可以发现,BeanFactory的具体实现除了SimpleJndiBeanFactory和StaticListableBeanFactory之外,其他的底层实现都是XmlBeanFactory。



我们来看一下类图


从这张类图上,我们还是能非常清晰地了解BeanFactory的整体架构的,其最终实现就是XmlBeanFactory,从名字上我们可以看到是解析Xml格式文件的BeanFactory,这样就显得比较单一,所以从Spring 3.1版本以上,XmlBeanFactory已经被Spring设置成不推荐使用了,而改用DefaultListableBeanFactory:


Resource resource = new ClassPathResource("beans.xml");
return new XmlBeanFactory(resource);

改成了

Resource resource = new ClassPathResource("beans.xml");
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
BeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
reader.loadBeanDefinitions(resource);

从代码上的变化我们可以发现,虽然实现稍微有点复杂了,DefaultListableBeanFactory需要通过显式地创建BeanDefinitionReader类型的读取器读取beans.xml里的数据,但是读取文件的格式能更加多样化了,看下面BeanDefinitionReader的架构:


除了XmlBeanDefinitionReader实现,还有PropertiesBeanDefinitionReader实现,甚至用户可以自定义实现一种数据格式的BeanDefinitionReader。
因为用得不是很多,而且我们知道ApplicationContext的底层实现也是一种BeanFactory,所以这里暂时就写这些,等分析ApplicationContext源码时,我们再来分析即可。
  • 大小: 94.3 KB
  • 大小: 134.7 KB
  • 大小: 35.4 KB
分享到:
评论

相关推荐

    BeanFactory的实例化

    Spring 3 中提供了三种实例化 BeanFactory 的方法,下面将详细介绍这三种方法。 第一种方法:从文件系统资源实例化 BeanFactory 在 Spring 项目中,可以从文件系统资源实例化 BeanFactory,这种方法可以使得 ...

    java 使用JDOM解析xml文件.docx

    首先,JDOM 库提供了一个简单易用的 API,易于使用和维护。其次,JDOM 库支持多种 XML 解析方式,包括 SAX、DOM 和 XPath 等。最后,JDOM 库提供了高效的解析性能,能够快速地解析大型 XML 文件。 使用 JDOM 库解析...

    SSM框架介绍.pptx

    Spring的容器BeanFactory是一个最简单的容器,它主要的功能是为依赖注入(DI)提供支持。ApplicationContext是BeanFactory的子接口,是spring中较高级的容器。ApplicationContext包含BeanFactory所有的功能,一般...

    获得spring里注册Bean的四种方法

    这样,我们就可以使用 getBeanFactory() 方法来获取 BeanFactory 对象,并使用它来获取指定名称的 Bean 对象。 ```java public class ServiceLocator implements BeanFactoryAware { private static BeanFactory ...

    Spring官网阅读(十三)ApplicationContext详解(下)

    在Spring应用中,通常会使用ApplicationContext来替代简单的BeanFactory,因为ApplicationContext提供了一站式的解决方案,能够更好地管理和协调复杂的系统组件。 当我们创建ApplicationContext时,可以通过XML配置...

    spring3.1中文参考文档

    - 介绍了如何使用@Component注解和@ComponentScan注解来自动扫描和配置bean。 - **2.5.4 通用的类型转换系统和字段格式化系统** - 提供了一套统一的类型转换和格式化机制。 - **2.5.5 数据层** - 增强了对各种...

    spring1框架的简单应用介绍

    - **IoC容器**:BeanFactory和ApplicationContext是Spring的两个主要容器,前者是基础,后者增加了更多企业级功能,如事件发布、国际化等。 - **AOP实践**:在Spring中,可以自定义切面并定义通知(advice),如...

    Spring获取ApplicationContext对象工具类的实现方法

    使用这个工具类非常简单。例如,如果你需要获取一个名为"userService"的Bean实例,可以这样做: ```java public static void getByUtil() { ApplicationContextUtil.getApplicationContext().getBean("userService...

    spring学习笔记(3.20)

    3. **BeanFactory与ApplicationContext**:比较两者之间的差异,解释何时使用BeanFactory以及何时升级到ApplicationContext,并演示如何实例化和使用它们。 4. **依赖注入**:详细阐述依赖注入的实现方式,包括XML...

    Spring面试题[更多最新精品www.cx1314.cn]1

    通过BeanFactory,我们可以实现对象的延迟加载和按需实例化,从而优化应用程序的性能和资源使用。 6. 接口注入是如何工作的? 接口注入是依赖注入的一种形式,它通过实现特定的接口来传递依赖。例如,一个类可以...

    spring学习笔记

    介绍了Struts2创建对象的方式、struts-spring-plugin.jar创建对象的方式、其内部实现和原理图,以及使用该插件时的注意事项和注入规则。 十、Spring的事务管理 探讨了声明式事务管理、编程式事务管理(不推荐使用)...

    简单Spring框架模拟器--Demo

    接着,“tiny-spring-step-2-abstract-beanfactory-and-do-bean-initilizing-in-it.zip”进一步深入,介绍了AbstractBeanFactory和Bean的初始化过程。在这个阶段,你将学习到BeanFactory如何解析XML配置,创建Bean...

    spring in action英文版

    Spring框架使用BeanFactory和ApplicationContext两个主要的容器来实现依赖注入。 Spring在企业服务访问方面也有一席之地,第7章“访问企业服务”讲解了如何使用Spring来访问如JNDI、JMS、邮件服务和调度任务等企业...

    简单Spring容器实现

    - **Bean的生命周期管理**:包括初始化、使用和销毁等阶段,Spring提供了回调方法供开发者扩展。 3. **简易Spring容器实现** - **初始化容器**:创建一个实现`ApplicationContext`接口的类,比如`...

    spring live

    《Spring Live》第二章主要介绍了Spring框架的基本使用和快速上手方法,涵盖了从环境搭建到实际应用开发的全过程。以下是对各个知识点的详细说明: 1. **BeanFactory**:BeanFactory是Spring容器的基础接口,它是...

    Spring3.1 中文参考文档

    - **1.2.1 核心容器**:提供Spring框架的基本功能,包括BeanFactory和ApplicationContext接口实现,用于管理bean的生命周期以及依赖注入。 - **1.2.2 数据访问/整合**:提供了一系列用于数据访问和集成的工具,包括...

    spring详细介绍PPT

    **Spring ORM**模块进一步加强了数据访问能力,它插入了多种ORM框架,使得在Spring中使用这些框架变得简单,同时也遵循Spring的一致事务和DAO异常层次结构。 **Spring Web模块**和**Spring MVC框架**是针对Web应用...

Global site tag (gtag.js) - Google Analytics