1.如何控制简单对象的创建次数
<bean id="account"scope="singleton/prototype"class="com.dy.scope.Account"/>
sigleton:只会创建⼀次简单对象 ---默认值 单例
prototype:每⼀次都会创建新的对象
2. 如何控制复杂对象的创建次数
FactoryBean接口中的isSingleton()方法
isSingleton(){
return true 只会创建⼀次
return false 每⼀次都会创建新的
}
如没有isSingleton⽅法 还是通过scope属性 进⾏对象创建次数的控制
3. 为什么要控制对象的创建次数?
好处:节省不必要的内存浪费
什么样的对象只创建⼀次?
1. SqlSessionFactory --- 重量级的mybatis的工厂 占用内存
2. DAO --- UserDAO 被多用户共用
3. Service --- 无状态的Service eg:你登录我登录 只是用户名密码不同
什么样的对象 每⼀次都要创建新的?
1. Connection --- 连接对象 因为要控制事务 不可能被大家共用
2. SqlSession(mybatis)---封装了连接 它和连接基本上是一一对应的,不能被大家共用 | Session ---
3. 控制器当中Struts2 Action不能被大家共用
本系列文章从Spring5原理开始深入浅出,从工厂特性=>依赖注入–IOC=>AOP编程=>Spring事务=>纯注解开发。本文来自观看B站孙帅Spring教程后做的笔记。持续更新…