Dao层和Service层设计
1、Dao接口层 public interface IBaseDao<T, ID extends Serializable>{ public abstract Serializable save(T t); /*其他接口*/ } 2、StudentDao接口层 public interface IStudentDao extends IBaseDao<Student,Serializable> { /*只有特殊的接口才在这里声明*/ } 3、BaseDao实现层 为了让BaseDaoImpl实现大部分的数据操作逻辑,必须要从泛型T获取实际的领域对象的类型,关键是理解getGenericSuperclass。 getGenericSuperclass() : 通过反射获取当前类表示的实体(类,接口,基本类型或void)的直接父类的Type,这里如果打印genType,结果为 com.huawei.happycar.dao.impl.BaseDaoImpl<com.huawei.happycar.domain.Student, java.io.Serializable> getActualTypeArguments(): 返回参数数组,参数中的第一个就是我们需要的领域对象类,打印entryClass,结果为 class com.huawei.happycar.domain