Spring中的bean线程是否安全
Spring中的bean线程是否安全
-
Spring容器中的Bean大致分为5个范围
- singleton:默认(大多数的默认),每个容器中只有一个Bean实例
- prototype:每一个bean请求提供一个实例
- request:为每一个网络请求创建一个实例,在请求完成之后,bean会失效并被垃圾回收(几乎不用)。
- session:每个session中有一个bean实例,session过期,bean失效(几乎不用)。
-
答案是否定的,spring bean默认是singleton,线程不安全,java web系统,在spring bean中不放实例变量,以至于被多个线程访问到,进行修改,导致线程安全问题,一般都是组件互相调用,然后最终多个线程访问数据库–不会导致多个线程并发访问内存里的共享变量。