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 的子接口,提供了比父 ...
随机推荐
- 51NOD 1057 N的阶乘
1057 N的阶乘 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 输入N求N的阶乘的准确值. Input 输入N(1 <= N <= 10000) ...
- 安装ceres-solver
安装依赖: sudo apt-get install -y google-mock libboost-all-dev libeigen3-dev libgflags-dev libgoogle-glo ...
- python 无序表查找
def sequential_search(lis, key): for i in range(len(lis)): if(lis[i] == key): return i else: return ...
- 使用R内置函数操作数据框
我们已经学习了数据框的基础,这里回顾一下用于筛选数据框的内置函数.尽管数据框本质上是一个由向量构成的列表,由于各列长度相同,所以可以将其看作矩阵进行访问和操作.选择满足特定条件的行,需要为 [ ] 的 ...
- Qt for Embedded Linux
1. Qt for Embedded Linux http://doc.qt.io/qt-5/embedded-linux.html 2. Installing Qt for Embedded Lin ...
- C语言位域解析&符号位扩展规则
从一个例子说起: int main(void){ union{ int i; struct{ ; ; ; }bits; }num; printf("Input an integer for ...
- 用docker部署gitlab
docker hub官网下载gitlab速度太慢,改用国内镜像+中文版 docker pull registry.cn-hangzhou.aliyuncs.com/lab99/gitlab-ce-zh ...
- Java IO流-File类
2017-10-24 23:50:22 File类 File类:文件和目录路径名的抽象表示形式.该文件或者目录不一定真实存在. * 构造方法 File类有四种构造方法,主要采用的构造方法师第二种,也就 ...
- Redis之无序集合类型命令
Redis 集合(Set) Redis 的 Set 是 String 类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中集合是通过哈希表实现的,所以添加,删除,查找 ...
- ubuntu server 无线网卡的处理
1) iwconfig 确定一下接口的名称 2) 编辑 /etc/network/interfaces 加入下面的代码 auto wlan0 iface wlan0 inet dhcp wpa-ssi ...