一 . 对于Spring的容器管理,首先得知道什么是容器管理.
java是一门面向对象的语言,在代码里,粗略的讲一个对象的体现就是一个类(class)的实例.也可以说就是一个JavaBean.在一个实际工程中,像这样的对象或实例会存在很多,并且每个对象的状态,作用范围,以及它们之间的关系(在Spring中为依赖)是很复杂的,所以要管理它们也是很大的开销.而在spring中,对与它们的管理就是容器管理.你可以看作容器就是这些bean的集合. 管理的方面主要有bean的创建,周期(作用域)和初始属性(注入),以及bean之间相互依赖的关系等.用比较专业的话就是------管理对象对其进行实例化、配置以及组装.

Spring IoC 容器
二 . 容器的运作.
在Spring包的有两个很重要的东西,org.springframework.beans及org.springframework.context包,这两个包是IOC的基础包,自然也是运行IOC容器的关键.而其中关键的关键就是分别在两个包里的BeanFactory和ApplicationContext,其中BeanFactory提供了配制框架及基本功能, 而
ApplicationContext则是它的扩展,这个扩展是针对企业级别的,当中加入很多了企业级的支持,功能得到了进一步增强,比如更易与Spring AOP集成、消息资源处理(国际化处理)、事件传递及各种不同应用层的context实现(如针对web应用的WebApplicartionContext).
1 . 实例化容器:
在项目工程中用于实例化容器的类一般都是ApplicationContext以及他的扩展WebApplicationContext,当然BeanFactory也能用.
在代码中一般是:
实际的项目中,上述的实例化方法一般都是用于非Web工程(c/s)或者测试代码中而在web工程内一般用的是ApplicationContext,实例化它只是在web配置文件(web.xml)里写入配置信息:
2. 容器的使用:
一般这是在代码级创建了IOC容器后(就是上述的(1)),或者是获得了容器的"引用"后用(这里其实是beanFactory和ApplicationContext的实现类的引用 如:);
InputStream is
=
new
FileInputStream(
"
beans.xml
"
);
BeanFactory factory
=
new
XmlBeanFactory(is);
-
boolean containsBean(String)
:如果BeanFactory包含给定名称的bean定义(或bean实例),则返回true
-
Object getBean(String)
:返回以给定名字注册的bean实例。根据bean的配置情况,如果为singleton模式将返回一个共享的实例,否则将返回一个新建的实例。如果没有找到指定的bean,该方法可能会抛出BeansException异常(实际上将抛出NoSuchBeanDefinitionException异常),在对bean进行实例化和预处理时也可能抛出异常
-
Object getBean(String, Class)
:返回以给定名称注册的bean实例,并转换为给定class类型的实例,如果转换失败,相应的异常(BeanNotOfRequiredTypeException)将被抛出。上面的getBean(String)方法也适用该规则。
-
Class getType(String name)
:返回给定名称的bean的Class。如果没有找到指定的bean实例,则抛出NoSuchBeanDefinitionException异常。
-
boolean isSingleton(String)
:判断给定名称的bean定义(或bean实例)是否为singleton模式,如果bean没找到,则抛出NoSuchBeanDefinitionException异常。
-
String[] getAliases(String)
:返回给定bean名称的所有别名。
上面六点,都是在BeanFactory中的基本和一些简单的用法,但在将其扩展后了的ApplicationContext中加入了企业级的功能,比如国际化,资源访问等,这些我将在学习Spring
XML格式的元数据配置中学习.
三 . 配置元数据
我自己的理解: 配置元数据的作用就是Spring管理Bean对象关系和资源文件的"规章制度",它是告诉IOC容器如何去组织对象和对象之间的关系是怎样的.
目前,Spring支持三种配置元数据格式:XML格式、Java属性文件格式或使用Spring公共API编程实现。很显然,XML是现在最方便和容易编写的配置元数据.
在Spring的XMl配置元数据格式为:
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<
beans xmlns
=
"
http://www.springframework.org/schema/beans
"
xmlns:xsi
=
"
http://www.w3.org/2001/XMLSchema-instance
"
xsi:schemaLocation
=
"
http:
//
www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
">
<
bean id
=
"XXX
"
class
=
"XXX
"
>
<!--
collaborators and configuration
for
this
bean go here
-->
</
bean
>
<
bean id
=
"XXX
"
class
="XXX
"
>
<!--
collaborators and configuration
for
this
bean go here
-->
</
bean
>
<!--
more bean definitions go here
-->
</
beans
>
到此,理解了什么是Spring,以及它在工程中的基本框架,下面着重学习的就是它的依赖注入和AOP技术的运用,学习是如何在XML元数据中进行配置.
posted on 2007-11-15 16:43
风之殇 阅读(281)
评论(0) 编辑 收藏 所属分类:
spring学习笔记