再做接口测试的过程中,有了ITEST接口测试工程的创建应该是很容易的事情。但配置,对开发工程依赖方面仍然是让人有点头疼的事情,尤其是对spring不大熟悉的同事吧。本文对spring基础知识做了些归总,希望对大家有点帮助。
一、bean的配置
在Spring中有三种方式来配置Bean之间的关系:XML配置文件、properties配置文件、编程方式。我们应该首选XML方式,下面主要讲解xml方式的配置。
1.bean的基本配置
举例 | 说明 |
<bean id=“testTargetInterfaceBean” ass=”com.testTargetInterfaceBeanImple”><property name=”number1” value=”12”/>
<property name=”number2”> <value>12</value> </property> </bean> | 基本类型(iTest支持的Spring版本被测bean的property可选) |
<list> <value>name</value>
<value>25</value> <ref local=”personBean” /> </list> <set> <value>1/value> <value>2/value> </set> <map> <entry key=”StrType”> <value>1243lue> </entry> <entry key=”intType”> <value>13</value> </entry> <entry key=”beanType”> <ref local=”StrType” /> </entry> </map> | 集合类型和数组<list><map><set>中的元素可以是:
① value:基本类型 ② ref:指向一个bean ③ bean:bean定义 ④ list,set,map,props:集合里有集合类型 注意:<value>配置的值Spring认为是String类型的,如果你想作为一个int型使用,必须List<int>或者Integer.parseInt(string) |
<property name=”propsType”> <props>
<prop key=”String1″> string1 </prop> <prop key=”String2″> string2 </prop> </props> </property> | java.util.Properties |
<bean id=”oneBean” class=”com.OneBean”><property name=”date1” ref=”dateBean”/>
<property name=”date2”> <ref bean=”dateBean”/> </property> <property name=”date3”> <bean class=”dateBean”/> </property> </bean> <bean id=”dateBean” class=”com.DateBean”> | 引用Beans配置文件中的某个Bean |
<bean id=”oneBean” class=”com.OneBean”><constructor-arg type=”int” value=”12″ />
</bean> | 构造函数 |
<bean id=”oneBean” class=”com.OneBean” singleton=”true”> <lookup-method name=”createAxe” bean=” date”>
<property name=”date” ref=”dateBean”/> </bean> <bean id=”dateBean” class=”com.DateBean” singleton=”false”> | 使得所引用的非单态bean总是Spring容器中最新的一个。createAxe:是oneBean中的一个抽象方法,将由Spring自动实现;” date”:是与createAxe的返回类型一样的bean在配置文件中的id号 |
2.<bean>标签的常用属性
属性 | 举例 | 说明 |
autowire | <bean id=”oneBean” class=”com.OneBean” autowire =“byType”> | 自动装配:就是让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 id=”oneBean” class=”com.OneBean” dependency-check =“object”> | 依赖检查:检查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程序中 |