Spring单例模式,线程相关,有没有同步机制?问题详解

来源:互联网 发布:数据库保护问题包括 编辑:程序博客网 时间:2024/04/30 07:48

Spring单例模式线程安全详解:


                首先,大家都知道,spring的bean可以配置为多例或者单例,单例是默认的。单例:singleton,多例prototypt


设计模式中单例模式会有锁机制的存在,那么spring的bean是不是也会有这种机制?


               Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。但实际上,大部分的Spring bean并没有可变的状态(比如Serview类和DAO类),所以在某种程度上说Spring的单例bean是线程安全的。如果你的bean有多种状态的话(比如成员变量等),就需要自行保证线程安全。

           Singlton,单例,默认容器中值有其一个实例可以实现共享,Prototype多例,每次用户都会创建一个新的实例。有状态的bean需要使用Prototype才可以保证不会发生并发问题。

           如果你既不想使用Prototype的spring的bean,又想保证有状态的bean并发访问。目前我想到的解决方法只能是通过单例模式加锁机制来解决了。



           个人理解,有错误希望大家可以批评指出!

          


         


0 0
原创粉丝点击