BeanFactory时Spring框架最核心的接口,它提供了高级IoC的配置机制,使管理不同类型的Java对象成为了可能。我们一般称BeanFactory为IoC容器。
BeanFactory是Spring的基础设施,面向Spring本身。

一、BeanFactory的体系结构


二、类图说明
  ListableBeanFactory:定义了访问容器中Bean基本信息的方法,查看Bean的个数、获取某一类型Bean的配置名,看容器中是否包含某一Bean等方法。
  HierarchicalBeanFactory:父子级联IoC容器的接口,子容器可以通过接口方法访问父容器。
  ConfigurableBeanFactory:增强了IoC容器的可定制性,定义了设置类装载器、属性编辑器、容器初始化后置处理器等方法。
  AutowireCapableBeanFactory:定义了将容器中的Bean按某种规则进行自动装配的方法。
  SingletonBeanFactory:定义了允许在运行期间向容器注册单实例Bean的方法。
  BeanDefinitionRegistry:该接口提供了向容器中手工注册BeanDefinition的方法。
三、初始化BeanFactory
  bean.xml略去不写。
  实例代码:

ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource res = resolver.getResource("classpath:com/xxx/bean.xml");
BeanFactory bf = new XmlBeanFactory(res);
Car car = bf.getBean("car", Car.class);

攻城狮在路上(贰) Spring(四)--- Spring BeanFactory简介的更多相关文章

  1. 攻城狮在路上(贰) Spring(三)--- Spring 资源访问利器Resource接口

    Spring为了更好的满足各种底层资源的访问需求.设计了一个Resource接口,提供了更强的访问底层资源的能力.Spring框架使用Resource装载各种资源,包括配置文件资源.国际化属性文件资源 ...

  2. 攻城狮在路上(贰) Spring(二)--- Spring IoC概念介绍

    一.IoC的概念: IoC(控制反转)是Spring容器的核心.另一种解释是DI(依赖注入),即让调用类对某一个接口的依赖关系由第三方注入,以移除调用类对某一个接口实现类的一览. 定义如此,由此可见, ...

  3. 攻城狮在路上(贰) Spring(一)--- 软件环境、参考书目等一览表

    一.软件环境: 二.参考书目: <Spring 3.X 企业应用开发实战> 陈雄华.林开雄著 电子工业出版社出版 三.其他说明: spring 源码地址:https://github.co ...

  4. 攻城狮在路上(叁)Linux(十四)--- 查阅文件内容

    常用命令:cat.tac.nl.more.less.head.tail.od... 一.直接查看文件内容:cat.tac.nl <==一次性全部读取 1.cat [-AbEnTv] 文件名 参数 ...

  5. 攻城狮在路上(壹) Hibernate(十四)--- Hibernate的检索方式(下)

    本节介绍HQL和QBC的高级用法:各种连接查询.投影查询.报表查询.动态查询.集合过滤和子查询等.另外将归纳优化查询程序代码,从而提高查询性能的各种技巧.一.连接查询: HQL与QBC支持的各种连接类 ...

  6. 攻城狮在路上(壹) Hibernate(四)--- 对象标识符(OID)生成机制

    Hibernate使用对象标识符(OID)来建立内存中对象和数据库表中记录的对应关系,对象的OID和数据库的主键对应.为了保证OID的唯一性和不可变性,应该让Hibernate来为OID赋值.Hibe ...

  7. 攻城狮在路上(伍)How tomcat works(四)Tomcat的默认连接器

     在第4章中将通过剖析Tomcat4的默认连接器的代码,讨论需要什么来创建一个真实的Tomcat连接器.     注意:本章中提及的“默认连接器”是指Tomcat4的默认连接器.即使默认的连机器已经被 ...

  8. 攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载

    虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件 ...

  9. 攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)

    一.环境说明: 操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 ...

随机推荐

  1. httpclient+Jsoup总结

    Jsoup.parse解析HTML字符串,如Jsoup.parse("<html><head><title>Firstparse</title> ...

  2. LinearLayout

    概念: LinearLayout是一种线性布局,他会将控件在水平和垂直方向做线性排列 官方文档: http://developer.android.com/guide/topics/ui/layout ...

  3. Asp.net MVC网站的基本结构

    Asp.net MVC网站的基本结构:Controller->IBLL(定义业务接口)->BLL->DA(调用Utility)->数据库 ,其中A->B表示A调用B 1. ...

  4. 用ConfigParser模块读写配置文件——Python

    对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...

  5. 【leetcode】Maximal Rectangle

    Maximal Rectangle Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle conta ...

  6. Linux之图形化shell------dialog

    转自:Linux dialog详解(图形化shell) | 运维生存时间 对话 UNIX: 使用 shell 脚本创建好的图形应用程序---http://www.ibm.com/developerwo ...

  7. 2.js模式-单例模式

    1. 单例模式 单例模式的核心是确保只有一个实例,并提供全局访问. function xx(name){}; Singleton.getInstance = (function(){ var inst ...

  8. C#小知识特殊的DefaultValueAttribute

    今天看别人写的源码发现一个特殊的DefaultValueAttribute.使用如下. 原始代码: public class People { private string _Name = " ...

  9. problem-record-mysql

    #!/bin/bash # # Update_Problem - updates problem record in database ################################ ...

  10. EF的各种删除方法

    //2.1检查 id 是否存在 //2.2执行删除 Models.Student stu = new Models.Student() { Id = id }; //db.Students.Attac ...