最底层最好还是用接口,谁规定了数据源一定是SQL DB, 为什么不能是XML,或者其他文件,甚至是一个List<Map<String, Object>>之类的内存中的东西?

解决方案 »

  1.   

    spring中,使用接口并不是为了方便使用事务,即使使用具体类,
    一样可以通过cglib来动态代理类。
    我认为事务层应该在service层而非DAO层,
    但Service引用的最好是DAO接口而非DAO实现类,
    像楼上所说的,Service本来就不需要假设数据存储到哪里,
    数据存储策略,需不需要缓存,那应该是DAO实现类的职责,
    一句话,职责要分离,
    不需要知道的事情就不要让它知道
      

  2.   

    楼上和楼上的楼上说的都太虚拟了!应该这样定义!public class SpringDAO extends HibernateDaoSupport inmplments 自定义接口{
    }上面才是正确的定义! 继承一个spring提供的DAO然后再实现自己的一个接口!!!
      

  3.   

    个人感觉一般简单的就不要用 service 了,事务处理用AOP 在DAO中搞定或不用
    复杂的,service 分离出来完成逻辑部分.代替 DAO 部分.