• Bean的scope

  配置中的bean定义可以看作是一个模板,容器会根据这个模板来构造对象,但是要根据这个模板构造多少个对象,又该让这些构造完的对象实例存活多久,则由容器的scope定义。scope用来声明容器中的对象所应该处的限定场景或者说该对象的存活时间,即容器在对象进入其相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象。

  Spring容器提供了五种scope类型,singleton,prototype, request, session,global session(后边三种职能在web应用中使用)

  1. singleton

  标记为拥有singleton scope的对象定义,在IoC容器中只存在一个实例,所有对该对象的引用将共享这个实例,该实例从容器启动,并因为第一次被请求而初始化之后,将一直存活到容器退出,它与IoC容器几乎拥有相同的寿命。

  通常情况下,如果不指定bean的scope,singleton便是容器默认的scope.

  2. prototype

  针对声明为拥有prototype scope的bean定义,容器在接到该类型对象的请求的时候,会每次都重新生成一个新的对象实例给请求方。对象实例返回给请求方之后,容器就不再拥有当前返回对象的引用了,请求放需要自己负责当前返回对象的后继生命周期的管理工作,包括对象的销毁。

  对于那些请求方不能共享使用的对象类型,应该将其bean定义的scope设置为prototype。这些对象一般都是一些有状态的,比如保存每个顾客信息的对象。

  3. request, session, global session

这三个通常与XMLWebApplicationContext共同使用。

    a. request

  Spring容器会为每个HTTP请求创建一个全新的Request-Processor对象供当前请求使用,当请求结束后,该对象实例的生命周期即告结束。从不很严格的意义上说,request可以看作prototype的一种特例,除了场景更加具体外,语义差不多。

    b. session

  对于Web应用来说,放到session中的最普遍的信息就是用户的登陆信息。Spring容器会为每个独立的session创建属于它们自己的全新的对象实例。与request相比,除了bean的存活时间长了一点外,其他方面没什么差别。

    c. global session

  global session只有应用在基于portlet的Web应用程序中才有意义,它映射到portlet的global范围的session。如果在普通的基于servlet的Web应用中使用了global session, 容器会将其作为普通session的scope来对待。

转载于:https://www.cnblogs.com/IvySue/p/6480210.html

《Spring》(六)---- Bean的scope相关推荐

  1. spring中bean属性scope

    spring中bean属性scope singleton:SpringIoc容器只会创建该Bean的唯一实例,所有的请求和引用都只使用这个实例 Property: 每次请求都创建一个实例 reques ...

  2. Spring框架——Bean的Scope(作用域)易错陷阱解析

    Spring框架--Bean的Scope(作用域)易错陷阱解析 阅读先修: 阅读本篇博文之前,您必须熟悉基本的有关Spring框架核心的IOC容器相关知识,以及基本的Bean配置方式.如若对该部分知识 ...

  3. Spring中bean的scope详解

    如何使用spring的作用域: <bean id="role" class="spring.chapter2.maryGame.Role" scope=& ...

  4. 【spring】Bean的Scope与自定义Scope

    Bean的作用域 在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为Bean.简单地讲,bean就是由IoC容器初始化.装配及管理的对象,除此之外,bean就与 ...

  5. spring学习之将类交给spring管理,bean的注入,scope,集合注入,自动装配,生命周期,迟加载

    一.将类交给spring管理(IOC) 1.将类交给spring容器管理 如何将一个类交给spring容器进行管理呢? 方法很简单,只需要在applicationContext.xml中加入对应的xm ...

  6. 【Spring】bean的作用域(@Scope) - singleton、prototype

    已知spring 3+已拥有多种不同的作用域: singleton(默认).prototype.request.session.global session.(参考: spring中scope作用域( ...

  7. 学习Spring(六) -- Spring中Bean的作用域以及生命周期

    2019独角兽企业重金招聘Python工程师标准>>> Bean的作用域 默认情况下,bean的作用域为单例模式(singleton): 在applicationContext创建时 ...

  8. spring bean中scope=prototype“的作用

    今天写代码时,遇到个问题,问题大概如下:在写一个新增模块,当各文本框等输入值后,提交存入数据库,跳到其它页面,当再次进入该新增页面时,上次输入的数据还存在. 经过检查发现是,spring配置文件中,配 ...

  9. spring bean属性scope

    ‍‍<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton ...

最新文章

  1. ECS是阿里云提供的什么服务
  2. 知乎大牛网友推荐几个靠谱老师及课程
  3. 今日arXiv精选 | 13 篇 ICCV 2021 最新论文
  4. 学Java好还是学Python好?这里有些建议
  5. win10无法查看计算机名,win10如何查看计算机名字
  6. ztree 更新配置后重新渲染树_【问】zTree异步加载时添加父节点怎样避免再次加载整树...
  7. vue中使用better-scroll实现滑动
  8. sun java applet,Sun Java运行时环境字体解析Applet权限提升漏洞
  9. 简述php的发展和特点,有关PHP特点的详细介绍
  10. c语言综合性程序设计,《C语言程序设计》综合性实验报告撰写格式
  11. inDesign教程,如何设置打印出血?
  12. (已完成)java socket-套接字实现类SocketImpl.md
  13. python 负数索引
  14. 看过这篇文章,再也不要说你是凭实力单身了
  15. python保存表情包_用Python一键保存半佛仙人所有的骚气表情包
  16. 姓名:孔盼 学号:2103101015 桃花岛——盼<>盼
  17. 转载《美团容器平台架构及容器技术实践》
  18. 修改审查元素怎么保存_[图解]微信公众号链接里的音频保存方法
  19. JanusGraph ,生产环境安装
  20. Django Web 官方 中文文档 开发手册

热门文章

  1. [转] Bookmarklet(书签工具)编写指南
  2. 程序员的十个层次 你属于哪一层?小菜看后
  3. SpringMVC-方法四种类型返回值总结,你用过几种?
  4. Unable to lock JVM Memory: error=12--elasticsearch
  5. Non-static field ‘func1‘ cannot be referenced from from a static context
  6. ubuntu下面下載imdb.npz的問題
  7. 《统计学习方法》P74勘误
  8. CentOS下面ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  9. range和xrange的区别
  10. 机器学习(二十)——EMD, LSA, HMM