关于单例下Dao层的疑问
来源:5-1 课程总结
QQ71
2021-01-28 11:53:01
问题描述:
假设我将CakeBiz改为单例,那当多个用户同时访问CakeController时,就会有多个线程同时访问同一个CakeBiz实例,而一个CakeBiz实例对应一个CakeDao实例,也就是多个线程同时访问一个CakeDao实例,
这会出现问题吗?
如果没有问题,那是多个线程轮流访问数据库还是同时访问数据库呢?
1回答
好帮手慕小班
2021-01-28
同学你好,1、将对象改为单例,并不会出现线程问题,因为在Mybatis框架中,对象实例化通过openSession方法可以获取到一个SqlSession对象,然后getMapper出来的对象对应是线程安全的,并且此时是只有这个一个服务,单服务情况下直接内存是用synchronized。所以此时是线程安全的。
2、多个线程同时访问,这应该是同时访问数据库,因为这里涉及底层,同学可以暂时先不纠结这个问题。
祝学习愉快!
相似问题