Spring Bean的创建数量是怎么样的

在 Spring 框架中,创建类的实例一般是根据你所定义的 Bean 的 作用域(Scope)来决定的。Spring 提供了多种作用域配置,常见的有以下两种:

1. Singleton(单例)

  • 默认作用域: 当你不指定作用域时,Spring 默认会将 Bean 的作用域设为单例。
  • 实例数量: 对于单例 Bean,Spring 容器在启动时只会创建一个实例,并在整个应用的生命周期中共享这个实例。也就是说,在整个 Spring 容器中,无论调用多少次,都只会使用同一个对象。
示例代码:
import org.springframework.stereotype.Component;

@Component
public class MySingletonBean {
    // 只有一个实例
}

在这个例子中,MySingletonBean 在 Spring 容器中总是只有一个实例。

2. Prototype(原型)

  • 创建新的实例: 如果将 Bean 的作用域设为原型,每次请求这个 Bean 时,Spring 容器都会创建一个新的实例。
  • 实例数量: 所以在这种情况下,创建的实例数量是可以是多个的,具体取决于你请求的次数。
示例代码:
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // 每次请求都会创建一个新实例
}

在这个例子中,MyPrototypeBean 的每次请求都会得到一个新的实例。如果你请求三次,就会创建三个不同的对象。

结论

  • 单例模式: Spring 容器中只会创建一个实例,整个应用共用。
  • 原型模式: 每次请求都会创建一个新的实例,实例数量由请求次数决定。

所以,创建类的实例可以是一个,也可以是多个,这取决于定义的作用域。如果是单例,则只创建一个;如果是原型,则可以创建多个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值