控制简单对象的创建次数
只需要在 Spring 配置文件的 bean 标签中添加 scope 属性。
<bean id="user" scope="singleton" name="USER" class="world.xuewei.User"> <property name="userName" value="张三"/> <property name="password" value="123456"/> </bean>
scope 的取值有以下几种:
- singleton:单例
- prototype:多例
控制复杂对象的创建次数
对于 FactoryBean 类型的复杂对象,可以通过修改 FactoryBean 接口的 isSingleton 方法的返回值即可,默认为单例。
对于实例工厂或者静态工厂,还是可以通过在 Spring 配置文件的 bean 标签中添加 scope 属性。
为什么要控制对象的创建次数
有利于节省内存资源,提供资源复用性。
什么样的对象只创建一次
- SqlSessionFactory
- Dao
- Service
- Controller
- …
什么样的对象每次都要重新创建
- Connection
- SqlSession、Session
- Struts2 Action
- …