SpringBean的作用域:
singleton(默认):为单例模式,唯一的bean实例,当为这个的时候,spring中的对象只创建一次,即外界调用多少次这个对象,都是同一个对象。
prototype:多例模式,每次请求都会创建一个新的bean实例对象,actionBean一定要使用prototype多例,其他基本全是默认singleton。
Spring 中的单例 bean 的线程安全问题了解吗?
单例
bean
存在线程问题,主要是因为当多个线程操作同⼀个对象的时候,对这个对象的⾮静态成员变量的写操作会存在线程
安全问题。
有两种解决办法:
1.
在
Bean
对象中尽量避免定义可变的成员变量(不太现实)。
2. 在类中定义⼀个ThreadLocal成员变量,将需要的可变成员变量保存在 ThreadLocal 中(推荐的
⼀种⽅式)。