控制Spring工厂创建对象的个数(对象是否单例)

控制Spring工厂创建对象的个数


通过控制反转的设计理念,我们可以将对象的创建交给Spring工厂来完成。

但是对象创建的次数同样是需要留意的。

1. 如何控制简单对象的创建个数

在Spring配置文件中通过scope属性来指定:

<bean id="account" scope="singleton|prototype" class="xxxx.Account"/>
  • sigleton: 只会创建⼀次简单对象 默认值
  • prototype: 每⼀次都会创建新的对象

2. 如何控制复杂对象的创建个数

继承FactoryBean接口同时重写isSingleton()方法。

public boolean isSingleton() {
    return true; // 只会创建⼀次
    return false; // 可以创建多次
}

如没有isSingleton⽅法 还是通过scope属性 进⾏对象创建次数的控制

3. 为什么要限制创建对象的个数

因为有一些大的对象会占用很多资源,所以需要限制个数,而有些对象朝生夕死,所以不需要控制创建个数。

  • 什么样的对象只创建一次?

    1. SqlSessionFactory
    2. DAO
    3. Service
    
  • 什么样的对象每一次都要创建新的?

    1. Connection
    2. SqlSession | Session
    3. Struts2 Action
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神烦狗闯入了你的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值