1.singleton:单例模式指的是无状态bean,spring IOC容器中只会有一个共享的Bean,每次getBean时获取的都是同一个对象,是线程不安全的
2.prototype:原型模式每次使用时创建,每次getBean时都生成一个新的对象,有状态Bean,与其他作用域相比,Spring并不管理原型bean的完整生命周期。容器实例化、配置和组装一个原型对象,并将其传递给客户端,而不需要进一步缓存该原型实例。因此,尽管初始化生命周期回调方法在所有对象上都被调用,而不管作用域如何,但在原型的情况下,配置的销毁回调方法不会被调用。客户端代码必须清理原型作用域对象,并释放原型bean所持有的资源。要让Spring容器释放由原型作用域bean持有的资源,需要使用自定义bean后处理器,它保存了对需要清理的bean的引用。
看起来,似乎比单例模式要复杂,因为这种方式会不断创建实例,如果不进行清除,最终会导致资源耗尽。
应用场景
1.代替new 实例化对象
2.资源不可共享,保证资源的安全性(某些情况下,需要每次获得处于某个状态的对象,但在每次使用后状态会发生变化)

加粗样式

spring的singleton和prototype相关推荐

  1. spring 的singleton 和prototype的区别和应用场合

    我们在讨论spring的scope的时候,绕不开singleton和protocol这俩,但是它们应用场合,你真的清楚吗? 我们在blog上找答案,基本上找到都是类似于这种答案: 答案总是让人依旧很蒙 ...

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

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

  3. spring 中scope的singleton和prototype区别

    <bean id="meetAction" class="com.web.actions.MeetsAction"   scope="proto ...

  4. Spring 循环引用 ——理解singleton与prototype初始化的区别

    所谓的循环引用,就是A依赖B,B又依赖A,A与B两个对象相互持有.像下面这种情况: class A {B b;public A(B b) {this.b=b;} }class B {A a;publi ...

  5. spring bean的使用范围:singleton,prototype,request,session,application

    singleton prototype bean的学习 /** 结论一:singleton bean 只有一个:prototype bean每次都会创建新的 结论二:对于集合对象,会有两个user对象 ...

  6. singleton和prototype

    singleton和prototype都是spring配置文件中bean标签的中scope得到属性值. singleton表示创建单实例对象(默认,不写也是),prototype表示创建多实例对象. ...

  7. Spring中Singleton作用域和Prototype作用域

    目录 基本概念 演示 基本概念 singleton作用域就是单例模式:用spring容器实现单例模式 而prototype作用域可以理解为多例模式! Singleton作用域例子: 左侧的ref就是右 ...

  8. spring创建bean模式singleton与prototype的区别

    spring 创建bean有单例模式(singleton)和原始模型模式(prototype)这两种模式. 在默认的情况下,Spring中创建的bean都是单例模式的(注意Spring的单例模式与Go ...

  9. (转)Spring中Singleton模式的线程安全

    不知道哪里的文章,总结性还是比较好的.但是代码凌乱,有的还没有图.如果找到原文了可以进行替换! spring中的单例 spring中管理的bean实例默认情况下是单例的[sigleton类型],就还有 ...

最新文章

  1. java File类 常用相关函数
  2. 查看哪个进程占用端口
  3. winform频繁刷新导致界面闪烁解决方法
  4. ICPC网络赛第二场G Limit
  5. python爬虫网络请求超时_Python网络爬虫编写5-使用代理,处理异常和超时
  6. [导入]基于Web的B/S结构实时监控系统[转]
  7. android box2d小程序
  8. MyBatis学习总结(27)——Mybatis-Plus使用小技巧
  9. java项目 干洗店源码,基于jsp的干洗店管理系统-JavaEE实现干洗店管理系统 - java项目源码...
  10. Changing the IP Address of a Domain Controller
  11. shell中set的用法(转)
  12. 测试用例(功能用例)——资产申购、统计报表
  13. Teststand自定义测试报告
  14. [BUG 记录] Ubuntu下Tesla M40与其他N卡共存安装
  15. 与浏览网站的访客直接进行QQ对话
  16. linux execl()函数
  17. python selenium爬虫豆瓣_使用selenium+requests爬取豆瓣小组讨论列表
  18. 好看的网站发布导航页HTML源码
  19. 我的生活与程序员职业规划
  20. AE图片跨软件复制粘贴扩展脚本 Copy Pasta for Mac 破解版

热门文章

  1. java 鼠标动眼睛动_java实现眼睛跟着鼠标转动的跟踪眼代码
  2. linux配置pcie无线网卡,【Linux c】读写pcie配置空间(安装lib库)
  3. java 刷题ide,力扣(LeetCode)刷题神器之Vs Code
  4. C#框架设计之浅谈SOA与钝化模式
  5. matplotlib使用cmap
  6. 时下火热的 NFT 究竟有什么用?
  7. 关于安卓手机的一些专业名称解释
  8. 张锋同学对数值策划的定义
  9. 国内ERP的弊端,从“自定义单据“和“自定义流程“来应对客户多变的业务需求
  10. QWebEngineView如何忽略SSL证书错误