Spring 的 Bean
欢迎来到我的 ChatGPT 中转站,极具性价比,为付费不方便的朋友提供便利,有需求的可以添加左侧 QQ 二维码,另外,邀请新用户能获取余额哦!最后说一句,那啥:请自觉遵守《生成式人工智能服务管理暂行办法》。
# Spring 的 Bean
# 什么是 Bean
Spring bean 是 Spring 框架中的一个核心概念,它是一个由 Spring 容器管理的 Java 对象。在 Spring 应用程序中,所有的组件(如 Controller、Service、Dao 等)都是以 bean 的形式存在于 Spring 容器中。Spring 容器负责创建、管理和组织 bean 之间的依赖关系,以及在需要时将它们注入到其他 bean 中。
Spring bean 具有以下特点:
- 可以通过依赖注入的方式来获取其他 bean 的实例;
- 可以通过作用域来控制 bean 的生命周期;
- 可以通过配置文件或注解来定义 bean 的属性和行为;
- 可以通过 AOP 技术来对 bean 进行增强。
Spring bean 的管理使得应用程序更加模块化、松耦合,也更加易于测试、维护和扩展。
# Spring 创建 Bean 的三种方式
使用默认的构造函数创建
在 Spring 的配置文件中配置 bean 标签,配置 id 和 class 后,且没有其他的属性和标签时采用的就是默认构造函数创建,如果对象中没有构造函数,则无法创建。
<bean id="accountService" class="com.dfd.service.IAccountServiceImpl"></bean>
1
使用普通工厂中的方法创建对象,或是使用某个类中的方法创建对象,并存入 Spring 容器
<bean id="instanceFactory" class="com.dfd.factory.InstanceFactory"></bean> <bean id="accountService" factory-bean="instanceFactory" factory-method="getAccountService"></bean>
1
2public class InstanceFactory { public IAccountService getAccountService() { return new IAccountServiceImpl(); } }
1
2
3
4
5
用静态方法创建对象,使用某个类中静态方法创建对象,并且存入 Spring 容器
<bean id="accountService" class="com.dfd.factory.StaticFactory" factory-method="getAccountService"></bean>
1
# Bean 的作用范围
bean 标签的 Scope 属性 用于指定 bean 的作用范围
- singleton:单例的 (默认的)
- prototype:多例的
- request:作用于 web 应用的请求范围
- session:作用于 web 应用的回话范围
- global-session:当应用处于集群环境时,他就是 session
# Bean 的生存周期
- 单例对象:
出生:当容器创建时,对象出生
活着:当容器活着,对象就活着
死亡:当容器消亡,对象就消亡 - 多例对象:
出生:当我们使用对象时 Spring 就为我们创建
活着:只要在使用过程中就一直活着
死亡:当我们长时间不使用的时候,java 的垃圾回收机制会将对将对象消亡,这个时候对象死亡
上次更新: 2025/04/12, 05:37:39