ArticleCategoryServiceImpl不是抽象的并且未覆盖BaseService中的抽象方法get
ArticleCategoryServiceImpl类中的代码如下:
@Service("articleCategoryService")
public class ArticleCategoryServiceImpl extends BaseServiceImpl<ArticleCategory> implements ArticleCategoryService {
@Autowired
private ArticleCategoryDao articleCategoryDao;
@Override
public BaseDao<ArticleCategory> getDao() {
return articleCategoryDao;
}
}
BaseServiceImpl中的代码如下:
public abstract class BaseServiceImpl<T> implements BaseService<T> {
/**
* 抽象方法,必须实现,返回DAO实例
* @return DAO实例
*/
public abstract BaseDao<T> getDao();
@Override
public int insert(T t) {
return getDao().insert(t);
}
@Override
public List<T> getList(T t) {
return getDao().getList(t);
}
@Override
public T get(Serializable id) {
return getDao().get(id);
}
}
public interface BaseService<T> {
public List<T> getList(T t);
public T get(Serializable id);
}
若是使用idea工具可以build成功,但是会在部署后,通过页面访问接口时会出现以下问题:
所以这个问题还是上面ArticleCategoryServiceImpl打包不成功造成的
各位大神,有遇到这个问题的吗,麻烦帮忙看看,谢谢啦!
这个应该是个运行时错误吧,好像也不是打包的问题,错误明明是显示 ArticleCategoryServiceImpl 这个类中未实现的抽象方法get,但这个类又不是抽象类
应该是你注入的这个ArticleCategoryDao 没有实现这个get(id)吧
ArticleCategoryDao继承BaseDao,在BaseDao中是有定义get(id)这个方法的,get方法在BaseServiceImpl中是有实现的,BaseServiceImpl是抽象类,该类中只有一个抽象方法getDao(),其他的都是接口实现的方法
感觉你的代码写的很混乱,BaseServiceImpl完全可以不要,直接用ArticleCategoryService接口 继承BaseService接口就好啦,ArticleCategoryServiceImpl然后实现ArticleCategoryService接口里边的方法和BaseService中的方法,如果要用到dao的话,直接在BaseServiceImpl里面用多好啊
public interface BaseService{}
public interface ArticleCategoryService extends BaseService{
}
public class ArticleCategoryServiceImpl implements ArticleCategoryService{
@Autowired
private ArticleCategoryDao articleCategoryDao;
public List getList(ArticleCategory ArticleCategory){
return articleCategoryDao.getList(ArticleCategory);
}
public ArticleCategory get(Serializable id){
return articleCategoryDao.get(id);
}
}