Spring 入门学习手札(三)BeanFactory与ApplicationContext的区别
一、基础介绍:
1、在Spring中,组件无需自己负责与其他组件的关联。取而代之的是,容器负责把协作组件的引用给予各个组件。创建系统组件之间协作关系的这个动作是DI的关键,通常被称之为装配;
2、容器可以创建组件,装配和配置组件,以及管理他们的整个生命周期(从new到finalize);
3、Spring提供了多种容器实现,并分为两类 :
Bean工厂(BeanFactory接口),提供了基础的依赖注入支持。
应用上下文(ApplicationContext接口),建立在Bean工厂基础之上,提供了系统架构服务。
4、不像其他工厂模式的实现,他们只是分发一种类型的对象,而Bean工厂是一个通用的工厂,可以创建和分发各种类型的Bean。
二、使用BeanFactory获取Bean(常用实现XmlBeanFactory)
在Spring中有几种BeanFactory的实现。其中最常使用的是org.springframework.beans.factory.xml.XmlBeanFactory,它根据XML文件中的定义装在Bean。
要创建XmlBeanFactory,需要传递一个org.springframework.core.io.Resource实例给构造函数。此Resource对象提供XML文件给工厂。
有以下几种方式配置XML源:
org.springframework.core.io.ByteArrayResourceorg.springframework.core.io.ClassPathResourceorg.springframework.core.io.DescriptiveResourceorg.springframework.core.io.FileSystemResourceorg.springframework.core.io.InputStreamResourceorg.springframework.web.portlet.contentx.PortletContextResourceorg.springframework.web.context.support.ServletContextResourceorg.springframework.core.io.UrlResource
比如使用FileSystemResource创建一个XmlBeanFactory:
ApplicationContext context = new FileSystemXmlApplicationContext("c:/pirate.xml");// or ~ApplicationContext context = new ClassPathXmlApplicationContext("pirate.xml")Author:Pirate Leo
Blog: http://blog.csdn.net/pirateleo
Email: codeevoship@gmail.com
转载请注明出处,谢谢。
若有侵权之处请致信告知,本人必将迅速处理。