bean 是Spring 管理的基本单位,在Spring 的J2EE应用中,所有的组件都是bean,bean 包括数据源、Hibernate 的SessionFactory 及事务管理器等。任何的Java 对象,Java 组件都可被当成bean 处理。整个应用中各层的对象都处于Spring 的管理下,这些对象以bean 的方式存在。
Spring 的容器最基本的接口就是:BeanFactory。BeanFactory 负责配置、创建及管理bean,它有个子接口: ApplictionContext ,因此也被称为Spring 上下文。Spring容器负责管理Bean与Bean之间的依赖关系。Spring负责创建bean 实例,并管理其生命周期。
调用者只需使用getBean 方法即可获得指定bean的引用,无须关心bean 的实例化过程。即bean 实例的创建过程完全透明。
2:bean的基本定义
<beans/> 元素是Spring 配置文件的根元素, <bean> 元素是<beans/> 元素的子元素,<beans/> 元素可以包含多个<bean/>元素, <bean/>子元素定义一个bean ,每个bean 是接受Spring容器里的Java 实例。在定义bean时,通常必须指定以下两个属性:
(1)id: id 属性是确定该bean 的唯一标识符,容器对bean 管理、访问及该bean 的依赖关系,都通过该属性完成。bean 的id 属性在Spring 容器中是唯一的。
(2)class:class 属性指定该bean 的具体实现类,这里不能是接口。通常情况下,Spring会直接使用new 关键字创建该bean 的实例,因此,这里必须提供bean 实现类的类名。
下面给出包含两个bean定义的简单配置文件:
<!--XML文件的文件头部分,指定了Xml文件的编码值-->
<?xml version = "1.0" encoding = "gb2312"?>
<!--指定Spring的xml配置文件的dtd-->
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<!--beans元素是Spring配置文件的根元素,
所有的Spring的配置文件都应该按以下结构书写-->
<beans>
<!--定义第一个java实例bean1,该java实例对应的实现类是ppp.Test1-->
<bean id="bean1" class = "ppp.Test1"/>
<!--定义第二个java实例bean2,该java实例对应的实现类是ppp.Test2-->
<bean id="bean2" class = "ppp.Test2"/>
</beans>
3:bean的配置
3.1下面基于xml的配置文件来定义了两个简单的bean:
<?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