在 Spring 中,Bean 是一个被 Spring 容器所管理的对象,这个对象可以是任何一个普通的 Java 对象,如一个 POJO(Plain Old Java Object),也可以是一些框架组件,如 DataSource、JdbcTemplate 等。Spring Bean 是一个由 Spring IoC 容器实例化、组装和管理的对象,因此也称之为 Spring 管理的 Bean。
在 Spring 中,Bean 的定义由一个 BeanDefinition 对象来描述,BeanDefinition 对象包含了 Bean 的类型、属性、依赖关系等信息。Spring 容器通过解析 XML 文件或注解来读取 BeanDefinition,然后根据 BeanDefinition 创建实际的 Bean 对象,并将这些 Bean 对象装配到容器中。
Spring Bean 的作用范围可以是 singleton、prototype、request、session 和 global session,分别对应着单例模式、原型模式、请求作用域、会话作用域和全局会话作用域。其中 singleton 是默认的作用范围,即一个 Bean 在整个应用程序中只有一个实例,而 prototype 则是每次都创建一个新的实例。
Spring Bean 的创建和管理是 Spring IoC 容器的核心功能之一,通过 Spring Bean 可以实现各种功能,如持久化、事务、安全性、AOP 等。因此,深入理解 Spring Bean 对于掌握 Spring 框架的核心技术和实现原理非常重要。