Spring中如何设置创建的bean对象是单实例还是多实例

在 Spring 中,你可以通过配置来指定是否创建单例(Singleton)或多实例(Prototype)的 Bean。默认情况下,Spring 创建的 Bean 是单例的,但你也可以显式地设置为多实例。

单例(Singleton):

单例是指在 Spring 容器中只会创建一个 Bean 实例,然后共享给所有需要的地方。

在 XML 配置文件中,可以使用 singleton 属性来显式设置 Bean 的范围为单例(默认为单例)

<bean id="myBean" class="com.example.MyBean" scope="singleton">
    <!-- Bean 的属性配置 -->
</bean>

在 Java 配置类中,使用 @Scope 注解来设置 Bean 的范围为单例:

@Configuration
public class MyConfig {
    @Bean
    @Scope("singleton")
    public MyBean myBean() {
       return new MyBean();
    }
}

 多实例(Prototype):

多实例是指每次从 Spring 容器中获取 Bean 时,都会创建一个新的 Bean 实例。

在 XML 配置文件中,可以使用 singleton 属性将 Bean 的范围设置为多实例:

<bean id="myBean" class="com.example.MyBean" scope="proptype">
    <!-- Bean 的属性配置 -->
</bean>

在 Java 配置类中,使用 @Scope 注解并设置值为 "prototype" 来将 Bean 的范围设置为多实例:

@Configuration
public class MyConfig {
    @Bean
    @Scope("prototype")
    public MyBean myBean() {
        return new MyBean();
    }
}

注意:

设置为单例时,加载配置文件或者配置类时,就会创建实例

而设置为多实例时,是在调用getBean方法时,才创建多实例对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值