0条评论
还没有人评论过~
学了这么久的web,确实对很多方面不是很懂。例如我知道spring中bean是单例,同时也知道这不是线程安全的,并且也知道如何保证线程安全,用ThreadLocal这种机制,同时看网上说无状态Bean是线程安全的类似Dao层,Controller层,有状态就是线程不安全了?
疑问就是比如多个用户同时发送一个查询或者修改的数据(如账号数据,是一个类),但是如果bean是单例的话,岂不是数据会不正常?不是很明白这里面的原理,有么有大佬解释一下。
首先,spring的bean不一定是单例的,作用于有singleton、prototype、request好多种;
线程安全不一定是使用ThreadLocal,ThreadLocal只是一种方式;
无状态的bean,这个无状态,可以和http的无状态类比一下;有状态的话,就是有上下文(context)