spring单例模式的问题

spring单例模式的问题

ID:35478292

大小:59.46 KB

页数:5页

时间:2019-03-25

spring单例模式的问题_第1页
spring单例模式的问题_第2页
spring单例模式的问题_第3页
spring单例模式的问题_第4页
spring单例模式的问题_第5页
资源描述:

《spring单例模式的问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Spring冇关单例模式的问题另外补充说-句,单例模式是spri隅推荐的配置,它在高并发下能极大的节省资源,提高服务抗压能力。springIOC的bean管理器是"绝对的线程安全〃。用ThreadLocal是为了保证线程安全,实际上ThreadLoacal的key就是当前线程的Thread实例。单例模式下,spri昭把毎个线程可能存在线程安全问题的参数值放进了ThreadLocal。这样虽然是一个实例在操作,但是不同线程下的数据互相之间都是隔离的,因为运行时创建和销毁的bean大大减少了,所以大多数场杲下这种

2、方式对内存资源的消耗较少,而且并发越高优势越明显。SpringMVCController默认是单例的:单例的原因冇二:1、为了性能。2、不需要多例。1、这个不用废话了,单例不用每次都new,当然快了。2、不需要实例会让很多人迷惑,因为springmvc官方也没明确说不可以多例。我这里说不需要的原因是看开发者怎么用了,如果你给controller中定义很多的屈性,那么单例肯定会岀现竞争访问了。因此,只要controller中不定义属性,那么单例完全是安全的。下面给个例子说明下:1packagecom・lavei

3、soft・demo.web・controllcr・lsh・ch5;2importorg・springframework・context・annotation.Scope;3importorg.springframework,stereotype.Controller;4importorg.springframework.ui.ModelMap;5importorg.springframework,web.bind,annotation.RequestMapping;6/**7*CreatedbyAdminis

4、tratoron14-4-9・1*2*@authorleizhimin14-4-9上午10:553*/11@Controller12@RequestMapping("Vdemo/lsh/ch5〃)13@Scopc("prototype")14publicclassMultViewController{15privatestaticintst=0;//静态的16privateintindex二0;//非静态17@RequestMapping("/show")18publicStringtoShow(ModelM

5、apmodel){19Useruser=newUser();20user.setUserName(,ztestuname,z);21user.setAge(〃23〃);22model,put("user",user);23return"/Ish/ch5/show〃;24}25©RequestMapping("/test")26publicStringtest(){27System,out.println(st+++〃

6、〃+index++);28return‘71sh/ch5/test〃;2930}001

7、12

8、

9、23

10、34

11、4改为单例的:00从此可见,单例是不安全的,会导致屈性重复使用。最佳实践:1、不要在controller中定义成员变量。2、万一必须要定义一个非静态成员变量吋候,则通过注解@Scope("prototype"),将其设置为多例模式。Action层次的代码如果需要用spring代理的话最好述是设置为多实例模式,单例模式可能会导致并发后数据异常。bean的作用域设为prototyp。只改action的,话说用springmvc多好,struts2就是多了个线程安全(一般情况都用不到),没啥了,还多了

12、那么多jH包。Bean默认的是单例的.如果不想单例需要如下配置:

13、例;scope二〃request",在WEB应用程序中,每一个实例的作用域都为request范围;scope二〃session",在WEB应用程序中,每一个实例的作用域都为session范围;注意:在默认情况下,Bean实例在被Spring容器初始化的时候,就会被实例化,默认调用无参数的构造方法。在其它情况下,Bean将会在获取实例的时候才会被实例化。2.Bean可以通过指定屈性init-mctho

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。