先看2个DAO类的写法
1:
public class TUserInfoDAOImpl extends BaseDaoImpl implements TUserInfoDAO
{
    public TUserInfo getUserInfoByName(String UserName) throws Exception
    {
        List<TUserInfo> list = (List<TUserInfo>) this.findBy(TUserInfo.class, "name", UserName);
        if(list.size()>0)
            return list.get(0);
        else
            return null;
    }
}2:
public class TUserInfoDAOImpl extends BaseDaoImpl implements TUserInfoDAO
{
    List<TUserInfo> list;
    public TUserInfo getUserInfoByName(String UserName) throws Exception
    {
        list = (List<TUserInfo>) this.findBy(TUserInfo.class, "name", UserName);
        if(list != null && list.size()>0)
            return list.get(0);
        else
            return null;
    }
}这是个用spring管理的dao类~
注入service使用~
问题
1:这个注入的dao是单例还是多例?似乎是由配置文件定的,但是具体定义在哪里?默认是什么?
2:似乎用单例的比较好,但是如果单例的话,写法1/2,哪种在消耗上好些?写在方法内部的list是在方法返回以后马上会被销毁,还是由垃圾回收机制一定时间后销毁?另外,似乎单例的话,两种写法是不是没多大区别?j2se学的不够扎实,很是细节疑惑,求解

解决方案 »

  1.   

    1.置于是单例还是多例,可以通过<bean>标签的scope="singleton"或者scope="protetype"来指定.
      默认是singleton.在项目也也推荐用默认的.
    2.关于对象什么时候销毁的问题,如果你的一定对象长时间没有使用,或者已经没有任何引用变量指向它时,它将在下一次垃圾回收中被销毁. 具体可参考GC的工作原理.