spring注入dao单例问题
我们一般都是把service,dao,session设置成单例,有几个问题不明白
1、现在有两个访问请求。因为是单例,所以线程1的service等于线程2的service,dao,session也是同样的,这样的话,这些成员变量就不是线程安全的了,怎么解释
2、现在我把session设置成原型,service有一个业务方法,并且这个业务方法是受事务控制的
@Transactional
public void aa(){
dao1.insert(xx1);
dao2.insert(xx2);
}
根据我的测试dao1得到的session与dao2的到的session不相等,既然session不相等,那就不是同一个会话,也就是说如果dao2.insert(xx2)出错,dao1.insert(xx1);也不会回滚,因为事务控制的是同一个会话,而根据我的测试,结果是会回滚的,怎么解释