读书人

Spring 入门学习手札(3)BeanFactory

发布时间: 2012-11-26 11:48:49 作者: rapoo

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

转载请注明出处,谢谢。

若有侵权之处请致信告知,本人必将迅速处理。



读书人网 >软件架构设计

热点推荐