ApplicationContext 接口容器和BeanFactory 接口容器

原创 2017年07月26日 23:41:22

ApplicationContext 接口容器
ApplicationContext 用于加载 Spring 的配置文件,在程序中充当“容器”的角色。其实现
类有两个。通过 Ctrl +T 查看:
这里写图片描述
A 、配置文件在类路径下
若 Spring 配置文件存放在项目的类路径下,则使用 ClassPathXmlApplicationContext 实现类进行加载。
这里写图片描述
B 、配置文件在本地目录中
若 Spring 配置文件存放在本地磁盘目录中,则使用 FileSystemXmlApplicationContext 实现类进行加载。
这里写图片描述
C 、配置文件在项目根路径下
若 Spring 配置文件存放在项目的根路径下,同样使用 FileSystemXmlApplicationContext实现类进行加载。
下面是存放在项目根路径下的情况,该配置文件与 src 目录同级,而非在 src 中。
这里写图片描述

这里写图片描述

BeanFactory 接口 容器
BeanFactory 接口对象也可作为 Spring 容器出现。BeanFactory 接口是 ApplicationContext接口的父类。
这里写图片描述
若要创建 BeanFactory 容器,需要使用其实现类 XmlBeanFactory (Ctrl+T 查看继承关系)。
该类可以加载 Spring 配置文件。
这里写图片描述
而 Spring 配置文件以资源 Resouce 的形式出现在 XmlBeanFactory 类的构造器参数中。
Resouce 是一个接口,其具有两个实现类:
ClassPathResource:指定类路径下的资源文件
FileSystemResource:指定项目根路径或本地磁盘路径下的资源文件。
这里写图片描述
在创建了 BeanFactory 容器后,便可使用其重载的 getBean()方法,从容器中获取指定的Bean 对象。
这里写图片描述

这里写图片描述

两个接口容器的区别
虽然这两个接口容器所要加载的 Spring 配置文件是同一个文件,但在代码中的这两个容器对象却不是同一个对象,即不是同一个容器:它们对于容器内对象的装配(创建)时机是不同的。
装配时机测试时需要注意,首先要在容器中对象 StudentServiceImpl 类的无参构造器中添加一个输出语句,以显示其是否执行。
这里写图片描述
A 、ApplicationContext 容器中对象的装配时机
ApplicationContext 容器,会在容器对象初始化时,将其中的所有对象一次性全部装配好。
以后代码中若要使用到这些对象,只需从内存中直接获取即可。执行效率较高。但占用内存。
这里写图片描述
B 、BeanFactory 容器中对象的装配时机
BeanFactory 容器,对容器中对象的装配与加载采用延迟加载策略,即在第一次调用getBean()时,才真正装配该对象。
这里写图片描述

版权声明:本文为博主原创,转载请注明出处(http://blog.csdn.net/jdjh1024).

Spring的三大核心接口——BeanFactory、ApplicationContext、WebApplicationContext

之前也在用这三个接口,但是对于他们的概念还是处于朦胧状态,同时,也不知道他们之间是一个什么关系,趁着现在有点时间总结一下吧,也需要对你有所帮助。 一、BeanFactory        基本认识...
  • u013030441
  • u013030441
  • 2017年01月24日 16:15
  • 637

一,Spring容器BeanFactory和ApplicationContext对比

BeanFactory和ApplicationContext对比BeanFactory和ApplicationContext联系BeanFactory和ApplicationContext是Sprin...
  • u010871004
  • u010871004
  • 2016年12月12日 22:06
  • 848

BeanFactory和ApplicationContext联系和区别

在Srping Ioc容器中,有BeanFactory和ApplicationContext两个系列。 实现BeanFactory接口的简单容器,具备最基本功能。 实现Applic...
  • laiwenqiang
  • laiwenqiang
  • 2017年01月23日 14:00
  • 1865

Java容器的特点与接口中的方法

Java集合框架图 Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: Collection:一个独立元素的序列,这些元素都服从一条或多条规则。 List:是有序可...
  • chun0801
  • chun0801
  • 2016年07月08日 00:46
  • 910

容器类和接口框架

一、在java.util包下主要的接口: Collection |—List |—Set Map 主要的类 ArrayList LinkedListHashSet LinkedHash...
  • wujingjing_crystal
  • wujingjing_crystal
  • 2016年10月09日 12:48
  • 177

Spring核心容器接口

Spring IoC容器是spring框架的核心和基础。IoC容器负责了spring bean的生命周期,是spring框架实现其他扩展功能的基础。下面,我们就来看一下spring IoC容器相关的核...
  • prince2270
  • prince2270
  • 2010年09月12日 12:41
  • 3161

2-BeanFactory容器的设计原理

1、BeanFactory接口提供了使用IOC容器的规范。在这个基础上,Spring还提供了符合这个IOC容器的一些类实现供开发人员使用。下面以XmlBeanFactory的实例为例来说明简单IOC容...
  • qq_25605779
  • qq_25605779
  • 2017年05月09日 01:13
  • 164

Spring容器上下文的关闭

一、提倡的初始化方法: 1. 在独立应用程序中,获取ApplicationContext:           AbstractApplicationContext context = new C...
  • mimica
  • mimica
  • 2015年09月07日 15:56
  • 3808

Java容器--接口概述

言兼原创,欢迎转载,转载请注明出处:http://blog.csdn.net/chengqianyun2002   Interface Collection Collection是Colle...
  • chengqianyun2002
  • chengqianyun2002
  • 2015年01月12日 21:18
  • 787

Spring中的beanFactory和ApplicationContext的有什么区别和关联

从上面的类结构图中可以看出来,ApplicationContext 是 BeanFactory接口的子接口 其中BeanFactory获得配置文件的实例是: // 使用BeanFactory 读...
  • judyfun
  • judyfun
  • 2015年03月10日 10:58
  • 859
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ApplicationContext 接口容器和BeanFactory 接口容器
举报原因:
原因补充:

(最多只允许输入30个字)