依赖注入--如果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:确定集合值为属性值。
分享到:
相关推荐
本篇将详细介绍Spring依赖包和配置文件的相关知识。 一、Spring依赖包 1. **Spring Core**:这是Spring框架的核心部分,提供了IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)服务。...
Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的底层实现机制。 首先,我们要...
这个"spring依赖包"包含了Spring框架所需要的各种组件和库,使得开发者无需单独下载,可以直接在项目中引用。 Spring框架的主要组成部分包括: 1. **Spring Core**:这是Spring的基础,提供了依赖注入(DI)和容器...
IoC容器负责管理对象的生命周期和依赖关系,使得代码更加松耦合,更易于测试和维护。 2. **AOP(Aspect Oriented Programming)模块**: AOP允许开发者定义"切面",将关注点(如日志、事务管理)从业务逻辑中分离...
而Maven则是一个项目管理和综合工具,主要负责管理项目的依赖关系,确保所有必要的库都正确地被引入到项目中。 7. **Maven的使用**: 虽然这个教程不提供Maven构建步骤,但通常我们需要在`pom.xml`文件中声明...
Spring依赖注入是Spring框架的核心特性之一,它使得对象之间的依赖关系得以解耦,增强了代码的可测试性和可维护性。依赖注入(Dependency Injection,简称DI)的理念是,一个对象不应该负责寻找并创建它所依赖的对象...
- 这些配置文件用于定义Spring容器中的bean以及它们之间的依赖关系。 4. **配置SessionFactory** - 如果你的应用使用了Hibernate或其他ORM框架,那么你可能还需要配置`SessionFactory`,以便Spring能够管理...
Spring框架是Java Web开发中的核心框架,它简化了配置、管理以及组件之间的依赖关系,极大地提高了开发效率。这个压缩包包含了一系列Spring相关的jar包,这些jar包是Spring框架的基石,用于实现各种功能。 首先,...
Spring依赖注入(Dependency Injection,简称DI)是Java应用开发中常用的设计模式,它极大地提高了代码的可测试性和可维护性。在Spring框架中,依赖注入是核心特性之一,通过控制反转(Inversion of Control,IoC)...
依赖注入是Spring的核心功能,它允许我们声明Bean之间的依赖关系,而不是硬编码这些关系。Spring会根据配置自动管理Bean的生命周期,包括实例化、初始化、装配和销毁。 1. 构造器注入 通过构造函数传递依赖。 ```...
在实际应用中,Spring的XML配置文件可能包含多个bean,每个bean都有自己的配置,包括初始化方法、销毁方法、属性注入、依赖关系等。此外,还可以使用`<import>`标签将其他配置文件导入,以便于组织和管理复杂的配置...
`service()`方法调用`repository()`来创建依赖关系。 四、自动配置(Auto-configuration) Spring Boot引入了一种更智能的依赖注入方式——自动配置。自动配置是通过`@EnableAutoConfiguration`注解启动的,它根据...
在Spring中,配置文件通常为XML格式,如`applicationContext.xml`,它定义了bean的实例化、属性设置、装配关系等。当我们启动Spring容器(如ClassPathXmlApplicationContext),容器会解析这个XML文件,生成相应的...
在解析XML配置文件或处理Java配置类时,Spring会创建一个BeanDefinition对象,它包含了bean的所有元信息,如类名、依赖关系、初始化方法等。对于`@Autowired`的处理,Spring在Bean实例化后会执行一个称为“依赖解析...
首先,理解依赖注入的基本思想:对象之间的依赖关系不是由对象自身管理,而是由外部容器(在这里就是Spring IoC容器)负责创建和维护。这样,对象可以在不关心依赖的具体实现情况下,通过配置文件或注解来获取所需的...
通过阅读和理解这些源码,你可以更深入地了解Spring依赖注入的工作原理及其在项目中的具体使用。 在进行依赖注入时,Spring使用BeanFactory或ApplicationContext作为容器,负责创建、管理和装配Bean。容器读取配置...