上传者: 24430629
|
上传时间: 2025-09-17 08:52:32
|
文件大小: 5.75MB
|
文件类型: PDF
### Spring Core 官方文档知识点概述
#### 一、IoC容器
- **Spring IoC容器简介**
- Spring框架的核心特性之一就是依赖注入(Dependency Injection, DI),它通过一个称为IoC容器来管理对象之间的关系。
- IoC容器负责创建对象、装配组件以及管理它们的生命周期。
- **容器概览**
- **配置元数据**:定义了如何实例化、配置及组装Bean的信息。Spring支持多种元数据格式,包括XML、注解和Groovy Bean Definition DSL。
- **基于XML的配置元数据**:使用XML文件来定义Bean及其依赖关系。
- **Groovy Bean Definition DSL**:提供了更简洁的配置方式,利用Groovy语言编写Bean定义。
- **容器的使用**
- 在了解了如何配置容器之后,接下来是学习如何在应用程序中使用这些配置好的容器。
#### 二、Bean概览
- **命名Bean**
- Spring允许为Bean指定名字,这在配置中非常重要。
- 可以为Bean定义别名,在其他地方引用时可以使用不同的名字。
- **Bean的实例化**
- **构造函数实例化**:通过指定的构造函数来创建Bean实例。
- **静态工厂方法实例化**:通过调用一个静态工厂方法来创建Bean实例。
- **实例工厂方法实例化**:通过调用一个非静态工厂方法来创建Bean实例。
#### 三、依赖
- **依赖注入**
- **基于构造函数的依赖注入**:依赖项在构造函数中传递,确保了Bean的不可变性。
- **基于setter的依赖注入**:依赖项通过setter方法设置,这种方式在Spring早期版本中较为常见。
- **依赖解析过程**:描述了Spring如何解析并注入依赖项的过程。
- **依赖和配置细节**
- **直值**(如原始类型、字符串等)可以直接在配置中定义。
- **对其他Bean的引用**(协作对象)可以通过`ref`属性引用其他Bean。
- **内嵌Bean**:可以在另一个Bean定义内部定义一个Bean。
- **集合类型**:可以配置数组、列表、集合、Map等类型的依赖项。
- **空值和空字符串**:Spring支持配置空值和空字符串作为Bean的属性值。
- **XML快捷方式**:使用`p-`和`c-`命名空间简化属性设置。
- **复合属性名**:支持更复杂的属性路径表达式。
- **使用`depends-on`属性**
- 通过`depends-on`属性控制Bean之间的依赖顺序。
- **延迟初始化Bean**
- 延迟初始化的Bean会在第一次请求时才被创建,而不是在容器启动时。
- **自动装配协作对象**
- 自动装配简化了依赖注入,但也有其局限性和缺点。
- 可以排除某些Bean不参与自动装配。
- **方法注入**
- **查找方法注入**:用于注入特定的方法。
- **任意方法替换**:用于替代或增强现有方法的功能。
#### 四、Bean作用域
- **单一实例作用域(Singleton)**
- 单个Bean定义在Spring IoC容器中只有一个实例。
- **原型作用域(Prototype)**
- 每次请求都会创建一个新的实例。
- **单例Bean与原型Bean的依赖**
- 单例Bean可以依赖于原型Bean,但反过来则不行。
- **Web作用域**
- **请求作用域**:每个HTTP请求创建一个新的实例。
- **会话作用域**:每个HTTP会话创建一个新的实例。
- **应用作用域**:每个Web应用创建一个新的实例。
- **WebSocket作用域**:每个WebSocket连接创建一个新的实例。
- **自定义作用域**
- 用户可以实现自己的作用域接口来扩展Spring容器的行为。
#### 五、Bean定义的定制
- **生命周期回调**
- **初始化回调**:Bean创建后调用的方法。
- **销毁回调**:容器销毁Bean前调用的方法。
- **默认初始化和销毁方法**:Spring提供了一些默认的初始化和销毁方法。
- **ApplicationContextAware和BeanNameAware**
- `ApplicationContextAware`接口让Bean能够访问到整个ApplicationContext。
- `BeanNameAware`接口让Bean能够知道自己的名字。
- **其他Aware接口**
- Spring还提供了一系列其他Aware接口,用于让Bean获取更多的上下文信息。
#### 六、Bean定义继承
- **Bean定义继承**:Bean可以继承另一个Bean的定义,从而重用属性和配置信息。这种机制可以减少重复配置,并使配置更加灵活。
以上是对Spring Core官方文档的部分内容进行的详细总结,涵盖了Spring框架中IoC容器的基础概念、Bean的配置和管理、依赖注入、Bean的作用域以及Bean定义的定制等内容。这些知识点对于理解和使用Spring框架至关重要。