2 biaohangpang0363 biaohangpang0363 于 2017.09.13 16:30 提问

关于Spring中单例问题!

JavaWeb开发中,应用Spring框架,学习的时候了解到SpringMVC创建的Controller,Service,Dao都是单例的。而每一个请求都是一个线程调用,一个请求调用的时候,如果查询了很久,同时另一个请求进入,查询的还可以,那两个请求同时做完查询,进行赋值,会出现数据赋值出错吗?因为是单例,对象是同一个?

2个回答

zmx1021
zmx1021   2017.09.13 16:45

单例只影响全局变量。所以用springmvc的时候在controller和service里我们一般不写全局变量。controller是单例的一个请求进来调用方法,每个请求改的都是局部变量。互不影响

huang931027
huang931027   Rxr 2017.09.13 16:54

这些是单例是对的,但是谁会给Controller,Service,Dao里面设置属性呢?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
spring单例在高并发下可能出现的错误
原文地址:http://www.cnblogs.com/atwanli/articles/4740184.html spring单例在高并发下可能出现的错误: 首先,只有当注入的对象是无状态的幂等的才可以保证执行前后不被修改,否则执行一次之后单例对象就会发生改变,在下次执行有肯能造成结果不一样,当在高并发的情况下就会出现,这个线程刚使用单例对象进行属性设置,还未使用的情况下,另一个进程已
spring单例性能
单例模式是spring推荐的配置,在高并发下能极大的减少消耗。 springmvc的bean管理器是“绝对的线程安全”用ThreadLocal是为了保证线程安全,实际上ThreadLoacal的key就是当前线程的Thread实例。单例模式下,spring把每个线程可能存在线程安全问题的参数值放进了ThreadLocal。这样虽然是一个实例在操作,但是不同线程下的数据互相之间都是隔离的,因为运行时
spring bean单例和并发
spring中的bean默认都是单例的,如下所示,效果都是一样:
关于spring单例,原型对象模式下犯的错
众所周知spring的bean管理默认为“单实例”模式,如果想把该bean改为原型模式可以在class文件的头部加上注解:@Scope(“prototype”);     最近犯了一个比较低级的错误,关于spring的bean模式控制的,具体业务逻辑如下:      在一个action层的bean中,定义了一个根据查询条件搜索数据的方法,并将查询结果存放在list中,用于在前台列表中显示,由于
springMVC的controller单例和多例下成员变量的问题
springMVC的controller单例和多例,通过控制台输出和debug分析不同情况下的成员变量.
Java面试题十七
前言         不知不觉运营这个公众号有一段时间了,很高兴认识了这么多朋友,Java知音后续会以推送一些网络上精选的技术文章为主。同时不定期整理一些笔试题,数据结构题供大家在空闲时间练练。         所选题型基本来源网络,这里会做简单的甄别,但因为能力以及时间的问题,不可避免会有一些错误,如果您发现哪些题目答案错误,欢迎在文章下留言,也欢迎积极讨论。       
spring单例和多例的问题
springMvc的controller默认是单例的,service和dao也默认是单例的 Spring的IOC容器中的对象默认都是单例的。当然也可以将其改为不是单例的。在xml文件中通过的属性scope="prototype"可以改为非单例的,使用注解的话,@Scope("prototype")。具体某个对象是否应该被设置为单例的,取决于它的作用。比如service, 用于调用dao, 整
Spring In Action-3.2@Scope单例、多例Bean
Spring In Action-3.2@Scope单例、多例Bean,Spring In Action-3.2@Scope单例、多例Bean,Spring In Action-3.2@Scope单例、多例Bean,Spring In Action-3.2@Scope单例、多例Bean
Spring管理的Bean对象默认是单例模式,怎么解决线程安全问题
一、在什么情况下,单例的Bean对象存在线程安全问题当Bean对象对应的类存在可变的成员变量并且其中存在改变这个变量的线程时,多线程操作该Bean对象时会出现线程安全。二、原因当多线程中存在线程改变了bean对象的可变成员变量时,其他线程无法访问该bean对象的初始状态,从而造成数据错乱三、解决办法1.在Bean对象中尽量避免定义可变的成员变量;2.在bean对象中定义一个ThreadLocal成...
Struts2和Spring整合, Action单例和多例的问题
Struts和Spring整合后, 无论是否在Action类上加@Controller和@Scope("prototype")都是多例的, 即使加上@Scope("singleton") , 经测试Action依然是多例的.