首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

spring依托关系配置

2012-06-28 
spring依赖关系配置依赖注入--如果A依赖于B,则B实例不再由A负责生成,而有容器负责生成,并注入给A实例,因此

spring依赖关系配置

依赖注入--如果A依赖于B,则B实例不再由A负责生成,而有容器负责生成,并注入给A实例,因此称为依赖注入,也称为控制反转。
??
?? 配置依赖
???? 根据注入方式的不同,

bean的依赖注入通常表现为如下两种形式:
??????? 1,属性:通过property属性来指定对应的设值注入。
??????? 2,构造器参数:通过constructor-arg属性来指定对应的构造注入。
?? 在Spring在实例化BeanFactory时,通常会校验BeanFactory中的每一个Bean的配置。

????? 这些校验包括:
??????? 1.bean引用的合作者指向一个合法的bean.
??????? 2.对于被设置为pre-instantiated的bean的singleton行为,Spring会在创建BeanFactory时,同时实例化bean.实例化bean时,也会将它所依赖的bean一起实例化。


??????? 此外,BeanFactory与ApplicationContext实例化容器中的bean的时机不同:前者在程序需要bean实例时才创建Bean;而后者在加载ApplicationContext实例时,会自动实例化容器中的全部bean.
??????? ApplicationContext是默认预实例化singleton bean。ApplicationContext实例化过程比BeanFactory时间和内存占用率大,但可以在ApplicationContext创建时就检验出配置错误。当然可以通过lazy-load属性为“true”来改变ApplicationContext的默认行为!
??????? bean的依赖通常可以接受如下元素指定值:
??????????? 1.value.
??????????? 2.ref.
??????????? 3.bean.
??????????? 4.list.set.map.以及props.

A.首先来看看value元素。
??????? value元素用于确定字符串参数。XML文档解析器解析以String解析出这些数据,然后将这些参数由PropertyEditors完成转换(从java.lang.String类型转换为所需的参数类型)。

B.接着是ref元素
??????????? 如果需要为bean注入的属性是容器中的某个bean实例,推荐使用ref。
???????????? ref元素通常有两个属性:
??????????????? 1.bean
??????????????? 2.local
???? bean用于指定在不同一个xml配置文件中的bean;


???? local用于指定同一个xml配置文件中的其他bean,并且local属性值只能是其他bean的id属性,让Spring在解析XML时,验证bean的名称。

?

?C.bean元素
??????????? 如果某个bean的依赖bean不想被Spring容器直接访问,则可以使用嵌套bean。
??????????? 嵌套bean只对嵌套它的外部bean有效,而Spring容器无法直接访问嵌套bean,因此嵌套bean无需id属性。
??????????? 嵌套bean的配置形式,保证嵌套bean不能被容器访问,提高了程序的内聚性。

D.list,set,map,以及props元素
??????????? list,set,map和props元素分别用来设置类型为List,Set,Map和Properties的属性值,用来为bean注入集合值。

???? map元素entry的值以及set元素的值都可以使用如下元素:
??????? 1.vlaue:确定基本数据类型值或字符串类型值。
??????? 2.ref:确定另外一个bean为属性值。
??????? 3.bean:确定一个嵌套bean为属性值。
??????? 4.list,set,map,以及props:确定集合值为属性值。

热点排行