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 的子接口,提供了比父 ...
随机推荐
- Python time strptime()与time strftime()
time strftime()接收时间元组,返回表示时间的字符串. time strptime()把时间字符串,解析成一个时间元组. import time t = time.strftime('%Y ...
- LR下载及破解
原文:http://chjuan1122.blog.163.com/blog/static/122892032013327111040128/ 地址:http://www.genilogix.com/ ...
- Linux 下的profile
# /etc/profile # System wide environment and startup programs, for login setup# Functions and aliase ...
- WM_COPYDATA
1. WM_COPYDATA : https://msdn.microsoft.com/en-us/library/windows/desktop/ms649011(v=vs.85).aspx COP ...
- Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)
Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...
- 文件路径、File协议、FTP协议、Http协议之间简单的区别
File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样,基本的格式如下:file:///文件路径. FTP是文件传输协议,可以用于互联网上.例如,你有一个网站,放在 ...
- socket+django
1.socket 网络上任意两个程序之间要进行通信,需要依靠socket(端口).socket封装了TCP/IP协议,让网络通信基于TCP/IP协议的形式实现. socket可以翻译为插座,那么一个服 ...
- Java注解 框架开发之Java注解的妙用
原文出处: locality 注解的好处: 1.能够读懂别人写的代码,特别是框架相关的代码. 2.本来可能需要很多配置文件,需要很多逻辑才能实现的内容,就可以使用一个或者多个注解来替代,这样就使得编程 ...
- codeforces 568a//Primes or Palindromes?// Codeforces Round #315 (Div. 1)
题意:求使pi(n)*q<=rub(n)*p成立的最大的n. 先收集所有的质数和回文数.质数好搜集.回文数奇回文就0-9的数字,然后在头尾添加一个数.在x前后加a,就是x*10+a+a*pow( ...
- [poj 3090]Visible Lattice Point[欧拉函数]
找出N*N范围内可见格点的个数. 只考虑下半三角形区域,可以从可见格点的生成过程发现如下规律: 若横纵坐标c,r均从0开始标号,则 (c,r)为可见格点 <=>r与c互质 证明: 若r与c ...