- Spring 核心基础
- Spring - 首页
- Spring - 概述
- Spring - 架构
- Spring - 环境设置
- Spring - Hello World 示例
- Spring - IoC 容器
- Spring - Bean 定义
- Spring - Bean 作用域
- Spring - Bean 生命周期
- Spring - Bean 后处理器
- Spring - Bean 定义继承
- Spring - 依赖注入
- Spring - 注入内部 Bean
- Spring - 注入集合
- Spring - Bean 自动装配
- 基于注解的配置
- Spring - 基于 Java 的配置
- Spring - Spring 中的事件处理
- Spring - Spring 中的自定义事件
- Spring - 使用 Spring 框架的 AOP
- Spring - JDBC 框架
- Spring - 事务管理
- Spring - Web MVC 框架
- Spring - 使用 Log4J 进行日志记录
- Spring 问题与解答
- Spring - 问题与解答
- Spring 有用资源
- Spring - 快速指南
- Spring - 有用资源
- Spring - 讨论
Spring - Bean 定义
构成应用程序主干并由 Spring IoC 容器管理的对象称为Bean。Bean 是由 Spring IoC 容器实例化、组装和管理的对象。这些 Bean 是使用您提供给容器的配置元数据创建的。例如,以 XML <bean/> 定义的形式,您已经在前面的章节中看到过。
Bean 定义包含称为配置元数据的信息,容器需要这些信息来了解以下内容 -
- 如何创建一个 Bean
- Bean 的生命周期细节
- Bean 的依赖项
所有上述配置元数据都转换为以下属性集,这些属性构成每个 Bean 定义。
| 序号 | 属性及说明 |
|---|---|
| 1 |
class 此属性是必需的,并指定用于创建 Bean 的 Bean 类。 |
| 2 |
name 此属性唯一地指定 Bean 标识符。在基于 XML 的配置元数据中,您使用 id 和/或 name 属性来指定 Bean 标识符。 |
| 3 |
scope 此属性指定从特定 Bean 定义创建的对象的作用域,它将在 Bean 作用域章节中讨论。 |
| 4 |
constructor-arg 这用于注入依赖项,将在后续章节中讨论。 |
| 5 |
properties 这用于注入依赖项,将在后续章节中讨论。 |
| 6 |
自动装配模式 这用于注入依赖项,将在后续章节中讨论。 |
| 7 |
延迟初始化模式 延迟初始化的 Bean 会告诉 IoC 容器在第一次请求 Bean 实例时创建它,而不是在启动时创建它。 |
| 8 |
初始化方法 在容器设置 Bean 上的所有必要属性后立即调用的回调。它将在 Bean 生命周期章节中讨论。 |
| 9 |
销毁方法 当包含 Bean 的容器被销毁时使用的回调。它将在 Bean 生命周期章节中讨论。 |
Spring 配置元数据
Spring IoC 容器完全与实际编写此配置元数据的格式分离。以下是向 Spring 容器提供配置元数据的三个重要方法 -
- 基于 XML 的配置文件。
- 基于注解的配置
- 基于 Java 的配置
您已经了解了如何向容器提供基于 XML 的配置元数据,但让我们再看一个基于 XML 的配置文件示例,其中包含不同的 Bean 定义,包括延迟初始化、初始化方法和销毁方法 -
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- A simple bean definition -->
<bean id = "..." class = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with lazy init set on -->
<bean id = "..." class = "..." lazy-init = "true">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with initialization method -->
<bean id = "..." class = "..." init-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with destruction method -->
<bean id = "..." class = "..." destroy-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- more bean definitions go here -->
</beans>
您可以查看Spring Hello World 示例,以了解如何定义、配置和创建 Spring Bean。
我们将在单独的章节中讨论基于注解的配置。之所以在单独的章节中讨论它,是因为我们希望您在开始使用注解进行 Spring 依赖注入编程之前,先掌握一些其他重要的 Spring 概念。