使用maven命令install打包项目提示XXX类不是抽象的

  • ArticleCategoryServiceImpl不是抽象的并且未覆盖BaseService中的抽象方法get
    image

  • 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);
    }
}
  • BaseService中的代码如下:
public interface BaseService<T> {

    public List<T> getList(T t);

    public T get(Serializable id);
}

若是使用idea工具可以build成功,但是会在部署后,通过页面访问接口时会出现以下问题:
image

所以这个问题还是上面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);
}
}