日期:2014-04-10 浏览次数:20924 次
在spring容器内拼凑bean叫作拆卸。拆卸bean的时候,你是在通知容器,需求哪些bean,以及容器如何使用依赖注入将它们配合在一同。
理论上,bean拆卸可以从任何资源获得,包括属性文件,关系数据库等,但xml是最常见的spring 使用系统配置源。Spring中的几种容器都支持使用xml拆卸bean,包括:
XmlBeanFactory ,
ClassPathXmlApplicationContext ,
FileSystemXmlApplicationContext ,
XmlWebApplicationContext
基本的xml配置包括如下几个方面:
1.添加一个bean
2.设置bean的属性
2.1 手动设置
2.1.1 通过Setter方法
2.1.2 通过结构器
2.2 自动设置
其中bean的属性即为bean里的成员变量,这些成员变量值的获得可以通过setter方法,例如某个属性为name,则setter方法为setName(String name);或者通过结构器在类被实例化时初始化。Setter方法(例如setName方法)或者结构器的调用都可以通过在xml文件里进行配置,从而实现让spring容器来自动进行。
1.添加一个bean
以下是一个例子:
<bean
id = “mybean”
Class = “blog.spring.MyBean”
Singleton = “false”
init-method = “initMethod”
destroy-method = “destroyMethod”
autowire = “autowire type”
/>
下面是对该标签里各个属性的解释:
Id : 标识该bean的名称,通过factory.getBean(“id”)来获得实例。
Class : 该bean的类路径。
Singleton : 默认为true,即单实例模式,每次getBean(“id”)时获取的都是同
一个实例,如果设置为false,即原型模式,则每次获取的是新创建
的实例。
Init-method : 在bean实例化后要调用的方法(bean里定义好的方法)。
Destroy-method : bean从容器里删除之前要调用的方法。
Autowire : 其属性要通过何种方法进行属性的自动拆卸。
对于上述的各个属性,id和class是必要的,其他的则可以省略。例如如果设置了autowire的值,则表明需求自动拆卸,否则是手动拆卸。
2.通过Setter方法手动设置bean里的属性
Bean里的属性通过<property>标签来标识。有以下几种情况:
● 简单类型属性
<bean id = “mybean” class = “blog.spring.MyBean”>
<property name = “name”>
<value>springTest</value>
</property>
</bean>
● 援用其他bean
<bean id = “mybean” class = “blog.spring.MyBean” />
<bean id = “mybean1” class = “blog.spring.MyBean1”>
<property name = “name”>
<ref bean = “mybean” />
</property>
</bean>
也可以将<ref>改为
<bean class = “..”>
这样叫做内部bean,缺点是无法在其他地方重用这个bean的实例。
● 拆卸集合
共有以下几种集合的拆卸:
****拆卸List和数组****
<property name = ”nameList”>
<list>
<value>something</value>
&n