一、bean的配置
在Spring中有三种方式来配置Bean之间的关系:XML配置文件、注解方式、Java类配置。下面讲解xml方式的配置。
1.bean的基本配置
举例 | 说明 |
| 基本类型(iTest支持的Spring版本被测bean的property可选) |
| 集合类型和数组<list><map><set>中的元素可以是: ① value:基本类型 ② ref:指向一个bean ③ bean:bean定义 ④ list,set,map,props:集合里有集合类型 注意:<value>配置的值Spring认为是String类型的,如果你想作为一个int型使用,必须List<int>或者Integer.parseInt(string) |
| java.util.Properties |
| 引用Beans配置文件中的某个Bean |
| 构造函数 |
| 使得所引用的非单态bean总是Spring容器中最新的一个。createAxe:是oneBean中的一个抽象方法,将由Spring自动实现;” date”:是与createAxe的返回类型一样的bean在配置文件中的id号 |
2.<bean>标签的常用属性
属性 | 举例 | 说明 |
autowire |
| 自动装配:就是让Spring自动的去匹配一个Bean的所有属性,而不需要我们在配置文件里写任何属性的配置。自动装配分为五种类型:①no:不采用自动装配功能;②byName:根据Bean属性的名称匹配,如果找不到合适的bean就什么也不做;③byType:根据Bean属性的class类型匹配,如果找不到则什么也不做,如果找到多个则抛异常;④constructor:根据构造函数的参数类型自动装配构造函数,如果找不能根据配置文件中现有的bean构造其任何一个构造函数则抛出异常,如果找到多个合适的bean则选一个;⑤autodetect:spring根据情况自动选用byType或constructor;备注:①Spring默认采用no;②不推荐使用自动装配,因为可读性不好,很容易乱;③上面的②和③是只自动装配bean的属性,而④则是仅仅装配bean的构造函数,不自动装配属性;⑤Spring2.0目前不支持基本类型及数组等无法在配置文件中单独配置成一个bean的类型的自动装配。 |
dependency-check |
| 依赖检查:检查Bean之间的依赖关系。它分为四种类型:①none:不作任何的检查;②simple:只检查基本类型(如int,String等)和集合(如HashMap,Arraylist等);③object:仅对合作者Bean进行依赖检查;④all:作所有检查。备注:①Spring默认采用none;②建议不是用依赖检查,因为依赖检查要求bean的所有属性都正确配置,否则就抛出异常,这通常不是我们想要的,因为我们通常会让bean中的基本类型保持Java的默认,而不是一定要在配置文件中初始化。 |
init-method | 在Bean的全部依赖关系(构造函数,所有属性等)设置结束后自动被Spring调用 | |
destory-method | 在Bean被销毁之前(即将被销毁)自动被Spring调用 | |
lazy-init | 默认情况下Spring在启动时自动初始化所有的singleton的bean,如果把bean的lazy-init设置成true,则启动时不初始化该bean;也可以在<beans>中设置把所有的bean延迟到访问它们时才初始化,像这样,<beans default-lazy-init=”true”> | |
3.Bean的分类及其生命周期
类型 | 适用情况 | 备注 |
Singleton(单态) | 无限制 | 在整个Spring容器中共享一份 |
Prototype(原型) | 无限制 | 每次请求一个原型的Bean,Spring都会创建一个新的对象返回 |
Request(请求范围) | 只能使用在WEB环境中 | Request范围的bean对于每一个请求都会建立一个bean实例 |
Session(会话范围) | 只能使用在WEB环境中 | 类似Request,它是每一个session共享一个实例 |
Globle session(全局会话) | 只能使用在使用portlet的web程序中 |