论坛首页 入门技术论坛

spring依赖关系配置

浏览 1608 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-09-10   最后修改:2009-09-15

 

依赖注入--如果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:确定集合值为属性值。

 

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics