文档章节

Spring谈谈其singleton模式

wiitht
 wiitht
发布于 2017/07/13 10:21
字数 268
阅读 7
收藏 0

    spring默认对bean采用的是单例模式,单例模式的好处就是对Bean容器来说有如下几点:

        1.减少实例的创建和管理的开销;

        2.对JVM垃圾收集友好;

    事物总有两面性,有一定好处就有一定缺陷;在Tomcat中对于每个请求都是单独分配一个线程来处理的;这意味着如果单实例的bean带上了状态,那么就会出现线程不安全的问题。

    Spring也给出了我们解决方案:

  • 在Tomcat和Jetty中,request和response对象对于线程单例的;
  • 基于Invocationhandler的动态代理;
  • ThreadLoacl是从当前线程中获取对象;
  • 在web项目中,可以使用Listener监听并处理http请求;

    参考

    其中我个人认为最核心的处理方案还是ThreadLocal通过本地线程对象解决了当前线程变量的存储(一般喜欢存放数据库实例connection,request等等)问题,从而避免了线程安全问题。

© 著作权归作者所有

共有 人打赏支持
wiitht
粉丝 3
博文 158
码字总数 113941
作品 0
深圳
架构师
私信 提问
Spring中bean的scope用法

Spring中bean的scope有六种:singleton,prototype,request,session,global session,application。此外,用户还可以自定义scope。还有一种scope是thread类型的,但是默认没有启用。 sing...

davelet
2016/04/25
0
0
spring所创建的bean的作用域

spring 模式上的作用域有两种 singleton :一个 Spring容器 中只存在公用一个实例。 prototype : 在spring容器中,每次都产生一个新的实例。 值得注意的是,我上面所提到的 “spring容器” ...

小鸟00
2018/09/06
0
0
MyBatis的SqlSessionFactory的创建问题

在MyBatis文档中,提到SqlSessionFactory最好在程序中只被创建一次。建议使用Singleton或者Spring、Guice等dependency injection框架。 Spring中使用MyBatis完全可以采用Spring-mybatis,无须...

长平狐
2012/08/28
958
0
SpringFramework核心技术一(IOC:Bean的分析)

Bean的概述 Spring IoC容器管理一个或多个bean。这些bean是使用您提供给容器的配置元数据创建的,例如,以XML 定义的形式 。 在容器本身中,这些bean定义被表示为BeanDefinition 对象,其中包...

王木东
2018/05/13
0
0
Spring容器中Bean的作用域

当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域: singleton:单例模式,在整个Spring IoC容器中,使用singl...

摆渡者
2014/02/26
0
1

没有更多内容

加载失败,请刷新页面

加载更多

【PG内核】事务ID冷冻简述

数据库代码中事务ID的类型TransactionId定义为:typedef uint32 TransactionId。因此事务ID最大值为2^32-1=4294967295。 事务ID是需要循环使用的,为了做到这一点,数据库在做vacuum时将很老...

movead
24分钟前
13
0
深入学习SpringMVC以及学习总结

一、优点: 1.SpringMVC简化web程序开发; 2.SpringMVC效率很好(单例模式); 3.SpringMVC提供了大量扩展点,方便程序员自定义功能; 如果想学习Java工程化、高性能及分布式、深入浅出。微服...

编程SHA
24分钟前
1
0
关于开源分布式事务中间件Fescar,我们总结了开发者关心的13个问题

开源分布式事务中间件 Fescar 自1月10日上线v0.1版本以来,受到了开发者们的极大关注(watch249,star3005,fork649,社区讨论的issue58,数据统计于1月17日14:00),可见,天下苦分布式事务...

阿里云官方博客
25分钟前
1
0
斯皮格尔:我们敢于采纳非常疯狂的创意

“阅后即焚”照片分享应用 Snapchat 母公司 Snap 的 CEO 埃文-斯皮格尔(Evan Spiegel)近日接受了英国《金融时报》记者的采访,谈到了该公司的未来发展,与社交网络 Facebook 的竞争,限制自己...

linuxCool
26分钟前
1
0
javaweb文件上传以及文件上传成功后但是目录中没有显示

经过看别人写的代码然后自己实际操作一遍,基本都是搬运也是为了练习。1:创建fileUpLoad.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UT......

小橙子的曼曼
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部