侧边栏壁纸
  • 累计撰写 93 篇文章
  • 累计创建 85 个标签
  • 累计收到 9 条评论

spring系列笔记 - 第九章 控制 Spring 工厂创建对象的次数

bearjun
2020-11-23 / 0 评论 / 0 点赞 / 937 阅读 / 568 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2020-11-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 控制简单对象的创建次数

配置文件中进行scope属性的配置:
sigleton:只会创建⼀次简单对象,也是默认值;
prototype:每⼀次都会创建新的对象;

<!--控制简单对象创建次数-->
<bean id="scope" scope="singleton" class="com.bearjun.Scope"/>

2. 控制复杂对象的创建次数

如果是FactoryBean方式创建的复杂对象:

public class xxxFactoryBean implements FactoryBean {
    // 省略其余实现方法......
    public boolean isSingleton() {
        return true;  // 只会创建⼀次
        return false; // 每⼀次都会创建新的
    }
}

注意:如果没有isSingleton方法,则还是通过scope属性进行设置。

3. 为什么要控制对象的创建次数?

最大的好处:节省不必要的内存浪费

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

SqlSessionFactory、DAO、Service(重量级的、可以被共用的、线程安全的)....

  • 什么样的对象每一次都需要创建新的呢?

Connection、SqlSession、Session(不能被共用的,线程不安全的)....

0

评论区