7.5.3:配置依赖
Bean的 依赖注入 通常表现为如下两种形式: ① 属性:通过<property.../>元素配置,对应设值注入。 ② 构造器参数:通过<constructor-arg.../>元素指定,对应构造注入。 通常情况下,Spring在实例化容器时,会校验BeanFactory中每一个Bean的配置,这些校验包括: ① Bean引用的依赖Bean是否指向一个合法的Bean。 ② Bean的普通属性值是否获得了一个有效值。 对于singleton作用域的Bean,如果没有强行取消其预初始化行为,系统会在创建Spring容器时预初始化所有singleton Bean,与此同时,该Bean所依赖的Bean也被一起实例化。 BeanFactory与ApplicationContext实例化容器中Bean的时机不同:前者等到程序需要Bean实例时才创建Bean,而后者在容器创建ApplicationContext实例时,会预初始化容器中的全部Bean。 注意:
实际上,Spring允许为singleton作用域的Bean指定lazy-init=“true”,该属性将改变singleton Bean实例的默认行为,强制取消该Bean实例预初始化。 Spring可以为任何Java对象注入任何类型的属性------只要该Java对象为该属性提供了对应的setter方法即可。 由于Java实例的属性值可以是各种数据类型,除了基本类型、字符串类型等,还可以是其他Java实例,也可以是容器中其他Bean的实例,甚至是Java集合、数组等,所以Spring允许通过如下元素为Bean实例的属性指定值: ① value:用于指定字符串类型,基本类型的属性值。 ② ref:属性值是容器中的另一个Bean实例。 ③ bean:注入嵌套Bean。 ④ list、set、map和props:注入集合值。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |