spring的singleton和prototype
1.singleton:单例模式指的是无状态bean,spring IOC容器中只会有一个共享的Bean,每次getBean时获取的都是同一个对象,是线程不安全的
2.prototype:原型模式每次使用时创建,每次getBean时都生成一个新的对象,有状态Bean,与其他作用域相比,Spring并不管理原型bean的完整生命周期。容器实例化、配置和组装一个原型对象,并将其传递给客户端,而不需要进一步缓存该原型实例。因此,尽管初始化生命周期回调方法在所有对象上都被调用,而不管作用域如何,但在原型的情况下,配置的销毁回调方法不会被调用。客户端代码必须清理原型作用域对象,并释放原型bean所持有的资源。要让Spring容器释放由原型作用域bean持有的资源,需要使用自定义bean后处理器,它保存了对需要清理的bean的引用。
看起来,似乎比单例模式要复杂,因为这种方式会不断创建实例,如果不进行清除,最终会导致资源耗尽。
应用场景
1.代替new 实例化对象
2.资源不可共享,保证资源的安全性(某些情况下,需要每次获得处于某个状态的对象,但在每次使用后状态会发生变化)
加粗样式
spring的singleton和prototype相关推荐
- spring 的singleton 和prototype的区别和应用场合
我们在讨论spring的scope的时候,绕不开singleton和protocol这俩,但是它们应用场合,你真的清楚吗? 我们在blog上找答案,基本上找到都是类似于这种答案: 答案总是让人依旧很蒙 ...
- 【Spring】bean的作用域(@Scope) - singleton、prototype
已知spring 3+已拥有多种不同的作用域: singleton(默认).prototype.request.session.global session.(参考: spring中scope作用域( ...
- spring 中scope的singleton和prototype区别
<bean id="meetAction" class="com.web.actions.MeetsAction" scope="proto ...
- 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 ...
- spring bean的使用范围:singleton,prototype,request,session,application
singleton prototype bean的学习 /** 结论一:singleton bean 只有一个:prototype bean每次都会创建新的 结论二:对于集合对象,会有两个user对象 ...
- singleton和prototype
singleton和prototype都是spring配置文件中bean标签的中scope得到属性值. singleton表示创建单实例对象(默认,不写也是),prototype表示创建多实例对象. ...
- Spring中Singleton作用域和Prototype作用域
目录 基本概念 演示 基本概念 singleton作用域就是单例模式:用spring容器实现单例模式 而prototype作用域可以理解为多例模式! Singleton作用域例子: 左侧的ref就是右 ...
- spring创建bean模式singleton与prototype的区别
spring 创建bean有单例模式(singleton)和原始模型模式(prototype)这两种模式. 在默认的情况下,Spring中创建的bean都是单例模式的(注意Spring的单例模式与Go ...
- (转)Spring中Singleton模式的线程安全
不知道哪里的文章,总结性还是比较好的.但是代码凌乱,有的还没有图.如果找到原文了可以进行替换! spring中的单例 spring中管理的bean实例默认情况下是单例的[sigleton类型],就还有 ...
最新文章
- java File类 常用相关函数
- 查看哪个进程占用端口
- winform频繁刷新导致界面闪烁解决方法
- ICPC网络赛第二场G Limit
- python爬虫网络请求超时_Python网络爬虫编写5-使用代理,处理异常和超时
- [导入]基于Web的B/S结构实时监控系统[转]
- android box2d小程序
- MyBatis学习总结(27)——Mybatis-Plus使用小技巧
- java项目 干洗店源码,基于jsp的干洗店管理系统-JavaEE实现干洗店管理系统 - java项目源码...
- Changing the IP Address of a Domain Controller
- shell中set的用法(转)
- 测试用例(功能用例)——资产申购、统计报表
- Teststand自定义测试报告
- [BUG 记录] Ubuntu下Tesla M40与其他N卡共存安装
- 与浏览网站的访客直接进行QQ对话
- linux execl()函数
- python selenium爬虫豆瓣_使用selenium+requests爬取豆瓣小组讨论列表
- 好看的网站发布导航页HTML源码
- 我的生活与程序员职业规划
- AE图片跨软件复制粘贴扩展脚本 Copy Pasta for Mac 破解版
热门文章
- java 鼠标动眼睛动_java实现眼睛跟着鼠标转动的跟踪眼代码
- linux配置pcie无线网卡,【Linux c】读写pcie配置空间(安装lib库)
- java 刷题ide,力扣(LeetCode)刷题神器之Vs Code
- C#框架设计之浅谈SOA与钝化模式
- matplotlib使用cmap
- 时下火热的 NFT 究竟有什么用?
- 关于安卓手机的一些专业名称解释
- 张锋同学对数值策划的定义
- 国内ERP的弊端,从“自定义单据“和“自定义流程“来应对客户多变的业务需求
- QWebEngineView如何忽略SSL证书错误