UserDao接口
UserDaoHibernate类
UserManager业务层的类,该类有UserDao属性将UserDaoHibernate注入到UserManager中以下两种方式,哪种更好一些呢:
方式1:
Bean ID = userDao
Bean Class = UserDaoHibernate
将userDao注入到UserManager
方式2:
Bean ID = userDaoHibernate
Bean Class = UserDaoHibernate
将userDaoHibernate注入到UserManager

解决方案 »

  1.   

    方式1:
    Bean ID = userDao
    Bean Class = UserDaoHibernate
    将userDao注入到UserManager
    方式2:
    Bean ID = userDaoHibernate
    Bean Class = UserDaoHibernate
    将userDaoHibernate注入到UserManager

    你这两种不是一样的吗?
    userDao是接口,而UserDaoHibernate是对userDao的实现。最终注入到UserManager的都是UserDaoHibernate这个对象,只是说你在UserManager里面看到的是UserDao这个接口对象。
    你配置的Bean ID只是这个bean的名字而已。当然,如果你在UserManager里面引入的是UserDaoHibernate这个的话,很遗憾的告诉你,那样好像不能注入。
      

  2.   

    方式1的问题在于,如果以后不用Hibernate了,就要更改userDao这个bean
    方式2就不存在这个问题,如果以后不用hibernate了,只要增加一个userDaoXXX的bean,然后修改userManager的属性就可以了