Spring中的单例一二
Spring框架很好的帮助我们创建和管理dao、bean、service、action等对象,
但是它创建的对象是单例呢还是多例,又有哪些区别以及为什么
1.在Spring中默认创建的是单例模式,简单来说就是节省内存开销
我们都知道每创建一次对象,需要开辟一块内存空间,这个就是多例了,但是这样的话内存开销比较大
如果只创建一个对象,只开辟一块内存空间,所有的用户都共享这个这个对象,这样的设计是不是就很优雅了
2.如果所有的用户都共享一个对象的话,就会有一个很大的问题
每一个用户都有自己私有的信息,这些信息是不能一样的,不能大家都叫同一个名字吧
所以我们在配置applicationContext.xml这个的时候需要加上scope="prototype",每个用户创建不一样的实例
3.这样看来,好像Spring中默认创建的是单例模式是有问题的,我们又能不能既有单例的优点又不影响每个用户的信息
可以的,dao、bean、service这些对象设置成单例的,资源共享,而action对象配置为多例
4.不管是单例还是多例都是为了创建对象,根据实际需求来选择合理搭配
在开发的过程中经常需要读取配置文件的信息,这样的工具类就可以是单例的
Spring中的单例一二的更多相关文章
- spring中的单例和多例
		单例 对象在整个系统中只有一份,所有的请求都用一个对象来处理,如service和dao层的对象一般是单例的. 为什么使用单例:因为没有必要每个请求都新建一个对象的时候,浪费CPU和内存. 多例 对象在 ... 
- 【Spring】8、Spring框架中的单例Beans是线程安全的么
		看到这样一个问题:spring框架中的单例Beans是线程安全的么? Spring框架并没有对单例bean进行任何多线程的封装处理.关于单例bean的线程安全和并发问题需要开发者自行去搞定.但实际上, ... 
- Spring5源码解析-Spring框架中的单例和原型bean
		Spring5源码解析-Spring框架中的单例和原型bean 最近一直有问我单例和原型bean的一些原理性问题,这里就开一篇来说说的 通过Spring中的依赖注入极大方便了我们的开发.在xml通过& ... 
- Spring框架中的单例bean是线程安全的吗?
		不,Spring框架中的单例bean不是线程安全的. 
- Spring 框架中的单例 bean 是线程安全的吗?
		不,Spring 框架中的单例 bean 不是线程安全的. 
- 5.2:缓存中获取单例bean
		5.2 缓存中获取单例bean 介绍过FactoryBean的用法后,我们就可以了解bean加载的过程了.前面已经提到过,单例在Spring的同一个容器内只会被创建一次,后续再获取bean直接从单例 ... 
- spring如何解决单例循环依赖问题?
		更多文章点击--spring源码分析系列 1.spring循环依赖场景2.循环依赖解决方式: 三级缓存 1.spring循环引用场景 循环依赖的产生可能有很多种情况,例如: A的构造方法中依赖了B的实 ... 
- Spring bean 和单例bean的线程安全
		Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).prototype(原型).request.session和global session,5种作用域说 ... 
- 在Swift中实现单例方法
		在写Swift的单例方法之前可以温习一下Objective-C中单例的写法: + (instancetype)sharedSingleton{ static id instance; static d ... 
随机推荐
- 用JAXP的SAX方式解析XML文件
			简单用JAXP的SAX方式(事件驱动)解析XML文件: 文件(1.XML) <?xml version="1.0" encoding="UTF-8" st ... 
- [转载]explicit关键字
			本文转自http://www.programlife.net/cpp-explicit-keyword.html. 其实explicit主要用于防止隐式转换,用于修饰构造函数.复制构造函数[注意:一般 ... 
- mysql数据库管理工具sqlyog在首选项里可以设置默认查询分页条数和字体,改写关键字大小写
			sqlyog设置一直习惯用sqlyog来管理mysql数据库,但有三个地方用得不是很爽:1.默认查询条数只有1000条经常需要勾选掉重新查询.2.自动替换关键字大小写,有时候字段名为关键字的搞成大写的 ... 
- WinForm支持拖拽效果
			有一个MSDN客户提问在WinForm中如何实现拖拽效果——比如在WinForm中有一个Button,我要实现的效果是拖拽这个Button到目标位置后生成一个该控件的副本. 其实这个操作主要分成三步走 ... 
- PHP入门 - - 07-->HTML的表单
			一.<form>标签及其属性 <from></form>标签对用来创建一个表单,即定义表单的开始和结束位置,<form>标签具有下面等属性. ... 
- 《锋利的jQruery》读书笔记
			由于是一边看书一边练习,所以干把笔记写在html文档中.想看的同学可以复制到一个html文档中,结合浏览器查看.不得不说<锋利的jQuery>是本好书,建议好好看看.尊重知识产权,请购买正 ... 
- [xsd学习]xsd介绍
			一直以来项目中对xml格式的判断使用的都是dtd格式,直到最近才发现,不知何时都已经转为xsd来进行判断和校验,于是今天专门找资料看下,不得不说,对于这类资料的入门,w3cschool真是个不错的资料 ... 
- Webstorm & PhpStorm
			WebStorm注册码 User Name: EMBRACE License Key: ===== LICENSE BEGIN ===== 24718-12042010 00001h6wzKLpfo3 ... 
- #asp.net core mvc 的视图注入
			View injection is the most useful feature introduced in ASP.NET Core. 1.添加一个FruitsService public cla ... 
- js公有、私有、静态属性和方法的区别
			现下,javascript大行其道,对于网站开发人员来说,javascript是必需掌据的一门语言,但随着jquery等框架的流行和使用,许多人对于原生javascript缺乏深入的理解, ... 
