1.singleton  (默认属性) 



Spring将Bean放入Spring IOC容器的缓存池中,并将Bean引用返回给调用者,spring IOC继续对这些Bean进行后续的生命管理。BeanFactory只管理一个共享的实例。所有对这个特定bean的实例请求,都导致返回这个唯一bean实例的引用。 



即每次拿到的对象都是引用的同一个地址的对象。当一个bean被标识为singleton时候,spring的IOC容器中只会存在一个该bean。 





2.prototype 



Spring将Bean返回给调用者,调用者负责Bean后续生命的管理,Spring不再管理这些Bean的生命周期。 

每次对这个bean的实例请求都会导致一个新的实例的创建。当用户需要不受其他用户对象影响的对象或有类似的需求时,这是一个较理想的解决办法。 





即每次拿到的对象都是引用的不同地址的对象。相当于一个new的操作。清除prototype作用域的对象并释放任何prototype bean所持有的昂贵资源,都是客户端代码的职责 





以下的3种scope都使用的较少,类似于J2EE里面的request和session。在使用SpringMVC是可能会用到。 





3.request 



‍request表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效,配置实例: request、session、global session使用的时候首先要在初始化web的web.xml中做如下配置:如果你使用的是Servlet
2.4及以上的web容器,那么你仅需要在web应用的XML声明文件web.xml中增加下述ContextListener即可: 



‍<listener> 

   <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 

</listener> 







4.session 





‍session作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效 







5.global session 



‍global session作用域类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义。Portlet规范定义了全局Session的概念,它被所有构成某个portlet web应用的各种不同的portlet所共享。在global session作用域中定义的bean被限定于全局portlet
Session的生命周期范围内。如果你在web中使用global session作用域来标识bean,那么web会自动当成session类型来使用 







对于Action来说需要指明scope=”prototype”或singleton=”false”,因为Action是线程不安全的,可能会导致跳转的页面错误。 



对于带有数据成员变量的类需要指明scope=”prototype”或singleton=”false”。不然这样会导致多个线程共用同一个成员变量。 





有状态的bean都使用Prototype作用域,而对无状态的bean则应该使用singleton作用域。

最新文章

  1. 在Salesforce中向外公布Service去创建Lead,并且用Asp.Net去调用此Service
  2. 使用htmlunit在线解析网页信息
  3. Linq使用Distinct删除重复数据时如何指定所要依据的成员属性zz
  4. SASS学习笔记1 —— 安装、编译和调试
  5. centos 6安装redis 2.8.19
  6. POI 操作(新接口)
  7. hdu Joseph
  8. C# lazy&lt;T&gt;的用法
  9. 利用内容提供者插入sms(装B程序)
  10. 02--Java TCP Socket编程
  11. AnsiString用法(转)
  12. Android检查更新下载安装
  13. [转载] Java并发编程:Callable、Future和FutureTask
  14. ubuntu下安装foxi reader阅读器
  15. (NO.00005)iOS实现炸弹人游戏(十):游戏主角(三)
  16. PHP学习笔记 02 之文件上传
  17. CSS实现标题/段落省略效果的三剑客
  18. 目前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么?它们的使用场合分别是?
  19. 转:springmvc常用注解标签详解
  20. UI自动化(七)selenium简述

热门文章

  1. CSS3---box-shadow设置
  2. Python 爬虫从入门到进阶之路(三)
  3. P1880 NOIP 1995石子合并
  4. oracle自增序列创建
  5. .net异步编程async和await的讨论收获
  6. POJ 2195 Going Home【最小费用流 二分图最优匹配】
  7. springboot注释详解
  8. ES6__class 的继承等相关知识案例
  9. Python基础教程笔记——第2章:列表和元组
  10. PHP的资源类型