javaEE项目抽取BaseService及其注意事项

Posted 太快的幸福,措手不及

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaEE项目抽取BaseService及其注意事项相关的知识,希望对你有一定的参考价值。

注意:难点在于service需要注入,那么,怎么注入呢?

1、书写BaseService

package cn.buaa.core.service;

import java.io.Serializable;
import java.util.List;


public interface BaseService<T> {

    //新增
    public void save(T entity);
    
    //更新
    public void update(T entity);
    
    //根据id删除
    public void delete(Serializable id);
    
    //根据id查询
    public T findObjectById(Serializable id);
    
    //查询列表
    public List<T> findObjects(); 
}

2、实现接口

package cn.buaa.core.service.impl;

import java.io.Serializable;
import java.util.List;

import cn.buaa.core.dao.BaseDao;
import cn.buaa.core.service.BaseService;

public class BaseServiceImpl<T> implements BaseService<T> {
    
    private BaseDao<T> baseDao;
    public void setBaseDao(BaseDao<T> baseDao) {
        this.baseDao = baseDao;
    }
    @Override
    public void save(T entity) {
        baseDao.save(entity);
    }

    @Override
    public void update(T entity) {
        baseDao.update(entity);
    }

    @Override
    public void delete(Serializable id) {
        baseDao.delete(id);
    }

    @Override
    public T findObjectById(Serializable id) {
        return baseDao.findObjectById(id);
    }

    @Override
    public List<T> findObjects() {
        return baseDao.findObjects();
    }

}

3、怎么用呢,如下,设置父类中的Dao

package cn.buaa.nsfw.info.service.impl;

import java.io.Serializable;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Service;

import cn.buaa.core.service.impl.BaseServiceImpl;
import cn.buaa.nsfw.info.dao.InfoDao;
import cn.buaa.nsfw.info.entity.Info;
import cn.buaa.nsfw.info.service.InfoService;

@Service("infoService")
public class InfoServiceImpl extends BaseServiceImpl<Info> implements InfoService {

    //采用这种方式注入,为了设置父类中的dao
    private InfoDao infoDao;
    
    @Resource
    public void setInfoDao(InfoDao infoDao) {
        super.setBaseDao(infoDao);
        this.infoDao = infoDao;
    }
}

 

以上是关于javaEE项目抽取BaseService及其注意事项的主要内容,如果未能解决你的问题,请参考以下文章

javaEE SSH框架 BaseAction的抽取以及其他方面代码优化

JavaEE | 通用Dao的抽取

Javaee的Dao层的抽取

JAVAEE——BOS物流项目02:学习计划动态添加选项卡ztree项目底层代码构建

baseService

(Win10)Java,Maven,Tomcat8.0,Mysql8.0.15安装与环境配置,以及IDEA2019.3使用JDBC连接MySQL创建JavaEE项目