Spring Bean的作用域

.singleton  [单例] eg:<bean id="personService" class="com.yinger.service.impl.PersonServiceBean" scope="singleton"></bean>

在每个Spring IoC容器中一个bean定义只有一个对象实例。

请注意Spring的singleton bean概念与“四人帮”(GoF)模式一书中定义的Singleton模式是完全不同的。

经典的GoF Singleton模式中所谓的对象范围是指在每一个ClassLoader指定class创建的实例有且仅有一个

把Spring的singleton作用域描述成一个container对应一个bean实例最为贴切。亦即,假如在单个Spring容器内定义了某个指定class的bean,

那么Spring容器将会创建一个且仅有一个由该bean定义指定的类实例。

默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。

如:<bean id="xxx" class="cn.itcast.OrderServiceBean" lazy-init="true"/>

如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下:

<beans default-lazy-init="true“ ...>

.prototype [原型]

每次从容器获取bean都是新的对象。

对于prototype作用域的bean,有一点非常重要,那就是Spring不能对一个prototype bean的整个生命周期负责:容器在初始化、配置、装饰或者是

装配完一个prototype实例后,将它交给客户端,随后就对该prototype实例不闻不问了。不管何种作用域,容器都会调用所有对象的初始化生命周期回调方法。

但对prototype而言,任何配置好的析构生命周期回调方法都将不会被调用。清除prototype作用域的对象并释放任何prototype bean所持有的昂贵资源,

都是客户端代码的职责。(让Spring容器释放被prototype作用域bean占用资源的一种可行方式是,通过使用bean的后置处理器,该处理器持有要被清除的bean的引用。)

以下的三种scope只是在web应用中才可以使用

.request

.session

.global session

使用这三种配置之前要先初始化Web配置

http://www.cnblogs.com/njtcy/p/3328076.html

最新文章

  1. Jmeter发送Java请求
  2. 近期博客内容的规划(关于Swift语言)
  3. mysql配置mysql-proxy读写分离
  4. 自己开发的csdn手机客户端
  5. 数据库SQL语句练习题5--9
  6. Mac os 10.9下面配置JAVA_HOME
  7. 纪录参加noip2015(pj+tg)复赛
  8. 安卓自写Adapter
  9. IC卡接口芯片TDA8007的读写器设计
  10. 转载Mvc的多层架构
  11. ASP.NET MVC5 实现分页查询
  12. 浅谈聚类算法(K-means)
  13. Microsoft Visual Studio 2012旗舰版(VS2012中文版下载)官方中文版
  14. Selenium+Python进行web自动化测试(Demo+API)
  15. eoLinker API-Shop 抓住区块链机遇,从这些API开始
  16. range 小数据池介绍
  17. camera驱动框架分析(上)【转】
  18. TortoiseGit推送代码到Gerrit的过程
  19. 使用mockserver来进行http接口mock
  20. Alpha 冲刺五

热门文章

  1. Delphi使用StrToDatetime在不同操作系统出现不同的情况(控制面板的时间格式都记录在注册表里,因此也可修改注册表)
  2. urllib2的异常处理
  3. KMP算法(具体求串的next[n])
  4. Java抓取网页数据(原来的页面+Javascript返回数据)
  5. Java程序员须知的七个日志管理工具(转)
  6. Flex与Java交互(Flex调用java类展示数据)解析xml展示数据
  7. ubuntu12.04下搭建ftpserver
  8. ZOJ3805:Machine
  9. 理解Spring的Bean工厂
  10. 浅谈 PHP 变量可用字符