Spring管理的Bean对象默认是单例模式,怎么解决线程安全问题
2018-03-24 00:59
429 查看
一、在什么情况下,单例的Bean对象存在线程安全问题
当Bean对象对应的类存在可变的成员变量并且其中存在改变这个变量的线程时,多线程操作该Bean对象时会出现线程安全。二、原因
当多线程中存在线程改变了bean对象的可变成员变量时,其他线程无法访问该bean对象的初始状态,从而造成数据错乱三、解决办法
1.在Bean对象中尽量避免定义可变的成员变量;2.在bean对象中定义一个ThreadLocal成员变量,将需要的可变成员变量保存在ThreadLocal中
相关文章推荐
- Spring源码学习--Bean对象循环依赖问题解决(四)
- spring与servlet集成开发对象管理问题解决方法
- spring的bean一般是单例模式,那多线程是怎么解决的?
- Spring默认创建的bean对象是单例模式吗?
- servlet 是否线程安全,是否单例模式,怎么解决线程安全的问题
- Spring 使new方法创建的对象可以引用spring管理的bean.
- 解决单例设计模式中懒汉式线程安全问题
- Spring中ApplicationContextAware接口用法-->解决AppicationContext.getBean('xxxx')时初始化多次数据库连接池问题
- spring bean id重复覆盖的问题解决
- VisualNet管理对象及能解决的问题
- 在Mybatis-spring中由于默认Autowired导致不能配置多个数据源的问题分析及解决
- 症状解决,原因不详的用非默认管理权限账户登录COM注册成功但找不到类型问题
- VisualNet光缆管理对象及能解决的问题
- Spring在加载后,怎么获取bean且已经是注入好了对象
- VisualNet管理对象及能解决的问题
- 解决servlet调用spring中bean的问题
- 由于以下错误: 0x80040154,无法创建 CLSID 为“{E436EBB3-524F-11CE-9F53-0020AF0BA770}”的 COM 对象。怎么解决这个问题?
- 黑莓9000(DM6.0+ROM5.0)解决媒体文件管理问题――工程模式开启大容量存储模式
- 简单模拟Spring管理Bean对象
- No bean named 'springSecurityFilterChain' is defined 问题解决