比如:DAO层接口设计: 
Interface StudentDAO 
{  
     public  Student findStudent(long id) ; 
} public class StudentDAOImpl extends HibernateDaoSupport implements StudentDAO {

    public  Student findStudent(long id){ 
           实现。。
     }
}一个接口只对应一个实现类,这里为什么要用接口啊,不解,请高人指点迷津 

解决方案 »

  1.   

    同意楼上,我从来不用,hibernate反向工程的时候有选项可以选的
      

  2.   

    java中的代理有两种方式:基于接口的代理和基于字节码的代理
    Spring默认使用的是基于接口的代理,如果你的实现类没有接口,那么也就没有方法可被代理;如果你在调用方法时使用的是实现类定义的变量,那么即使你的实现类实现了接口,被调用的方法也不是代理后的方法,而是原方法。楼主的Dao设计的还算简单了,一般情况下你的业务接口都还会extends其它接口。interface StudentDAO extends GenericDao<Student>{}