请问banq关于singleton的问题

最近在看spring,文档上讲,spring中所有的对象默认的都是singleton的,我想问的是,spring中为什么
会如此设计,好处是什么?
在我的印象中,采用singleton是为了让多个线程访问的资源保存一致性的时候才用的,请问banq,我的
理解是否正确?
还有,如果采用singleton,在多线程请求的情况下,是不是一个请求结束了,另一个请求才可以开始,
也就是同步的意思。是不是singleton在多线程的情况下性能会低啊?
我原来想把数据访问组件(DA)作成singleton的,因为它只是数据库的简单操作,没有状态可言,但如果性能低的话,我又不敢了,

你的理解是对的。这是基础,对singelton的畏惧属于编程感觉,编程感觉是学不来。

Hibernate使用threadLocal来处理,你可将你的DA放到ThreadLocal中,不过这样让人觉得怪怪的。

或者将DA做成Pool,这是比较好的。