BeanFactory工厂
Core模块主要的功能是实现了反向控制(Inversion of Control)与依赖注入(Denpendency Injection)、Bean配置以及加载。
Beans为Spring里的各种对象,一般要配置在Spring的配置文件中;BeanFactory为创建Beans的factory,Spring通过BeanFactory加载各种Beans;BeanDefinition为Bean在配置中的定义,一般要定义id与class;ApplicationContext代表配置文件。
BeanFactory工厂
BeanFactory是实例化、管理众多的容器。
BeanFactory可用接口org.springframework.beans.factory.BeanFactory表示。
BeanFactory最常见的实现类为XmlBeanFactory。XmlBeanFactory可以加载xml的配置文件。
实例化BeanFactory
Web程序加载时候自动实例化BeanFactory,并加载所有Beans,并将Bean设置到各个组件资源中。
java桌面程序中,需要从BeanFactory获取Bean,所以需要实例化BeanFactory。
例如:
ClassPathResource res=new ClassPathResource("applicationContext.xml");//获取配置资源,一般使用的是相对路径
XmlBeanFactory beanFactory=new XmlBeanFactory(res);//实例化工厂对象
IService hello=(IService) factory.getBean("service");//从工厂中获取对象
...//其他代码略
Beanfactory.destorySingletons();//销毁实例化的工厂对象
加载多个配置文件
public static void main(String[] args) {
ClassPathXmlApplicationContext appContext=new ClassPathXmlApplicationContext(
new String[]{"com/test/applicationContext.xml","com/test/applicationContext_2.xml"}
);
BeanFactory factory=(BeanFactory)appContext;
Dog d=(Dog) factory.getBean("dog");
System.out.println(d.getName()+"\t"+d.getAge());
}
BeanFactory工厂的更多相关文章
- 使用beanFactory工厂实例化容器的方式实现单例模式
//配置文件bean.properties(注意书写顺序) accountService=com.itheima.service.impl.AccountServiceImplaccountDao=c ...
- BeanFactory 工厂模式
/** * BeanFactory实现类 */ public class ClassPathXmlApplicationContext implements BeanFactory { private ...
- 理解Spring的Bean工厂
一提到工厂,我们先来回顾前面学习过的工厂方法和抽象工厂模式: 工厂方法:针对产品维度,能够产生新的产品,也能够产生新的产品工厂,既能够扩展产品维度.可是假设我们想在普通工厂上生产产品系列,就会特别麻烦 ...
- 工厂模式讲解, 引入Spring IOC
目录 引入 简单工厂 抽象工厂 Spring的bean工厂 模拟Spring工厂实现 模拟IOC 引入 假设有一个司机, 需要到某个城市, 于是我们给他一辆汽车 public class Demo { ...
- ApplicationContext(四)BeanFactory 功能扩展
ApplicationContext(四)BeanFactory 功能扩展 上节我们提到容器刷新的第二步初始化 BeanFactory 工厂并解析配制文件,但此时 BeanFactory 的功能还很简 ...
- Spring框架中的工厂(了解)
1. ApplicationContext接口 * 使用ApplicationContext工厂的接口,使用该接口可以获取到具体的Bean对象 * 该接口下有两个具体的实现类 * ClassPathX ...
- 简单实现Spring中BeanFactory原理
上一篇文章介绍了Java反射机制在Spring IOC中的应用,知道了BeanFactory底层的实现原理. 原理搞懂了,对Spring IOC理解起来也很容易. 先来看看Java代码获取Spring ...
- 案例40-层与层之间的解耦(面向接口编程)BeanFactory
1 bean.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans> <!- ...
- spring 的工厂类
spring 的工厂类 1. 工厂类 BeanFactory 和 ApplicationContext 的区别. ApplicationContext 是 BeanFactory 的子接口,提供了比父 ...
随机推荐
- Unity3D学习笔记(九):摄像机
3D数学复习 using System.Collections; using System.Collections.Generic; using UnityEngine; public class w ...
- Facebook广告API系列 2 - Audience Management
Facebook广告API系列 2 Facebook marketing API有三大组成部分: Audience Management Ads Management Ads Insights 本篇稍 ...
- MVC ---- EF的安装于卸载
先卸载EF:Uninstall-Package EntityFramework -Force 在安装EF5.0:Install-Package EntityFramework –Version 5.0 ...
- codeforces 251 div2 C. Devu and Partitioning of the Array 模拟
C. Devu and Partitioning of the Array time limit per test 1 second memory limit per test 256 megabyt ...
- python 分数的数学四则运算
import fractions f1 = fractions.Fraction(, ) f2 = fractions.Fraction(, ) print('{} + {} = {}'.format ...
- ubuntu 14.04 server 能ping通,但不能ssh
ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全,我们可以很方便的用ssh链接工具连接远程服务器进行相关操作,但是在享受这种方便的同时我们需要进行一些配置. 首先我们需要在 ...
- css3转盘
此效果涉及到 : 1. css 画图形 2. css3 动态效果 3. 贝塞尔曲线 用法 <style> .lds-hourglass { display: inline-block; p ...
- Spring AMQP 源码分析 02 - CachingConnectionFactory
### 准备 ## 目标 了解 CachingConnectionFactory 在默认缓存模式下的工作原理 ## 前置知识 <Spring AMQP 源码分析 01 - Impatie ...
- Redis之有序集合命令
Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...
- 谈谈http与https
今天简单的来说一下http和https, 简单来讲: HTTP 是 超文本协议,TCP 端口是 80 HTTPS 是一种配合了SSL协议的.加密的HTTP 协议 ,TCP端口是 443 HTTP ...