1. 如何控制简单对象
创建次数?
singleton
: 只会创建一次简单对象, 是默认值
prototype
: 每一次都会创建新的对象
<bean id="account" scope="singleton" class="com.scope.Account"></bean>
<bean id="account1" scope="prototype" class="com.scope.Account"></bean>
2. 如何控制复杂对象
的创建次数?
FactoryBean
的三个方法里面的一个方法,即通过设置isSingleton()
的返回值 来控制次数。
return true
只创建一次,
return false
创建多次。
如果没有 isSingleton()
的放大,还是通过scope属性
来控制次数。
3. 为什么要控制对象的创建次数?
为了节省内存,避免浪费。有的对象可以公用,则只创建一次就行了。
4. 什么样的对象只创建一次?
可公用,线程安全的对象。比如:
(1)SqlSessionFactory
(2)DAO
(3)Service (无状态的service都只一次)
5. 什么样的对象每次都需要创建?
不能公用 或 线程不安全的对象
(1)Connection 连接对象不能公用,每次都需要新建
(2)SqlSession | session
(3)Struts2 Action
多读书,没有错的
加加油~
“Do one thing every day that scares you.”
– Mary Schmich