Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Spring配置实现抽象服务_Spring_Hibernate_Abstract Class - Fatal编程技术网

使用Spring配置实现抽象服务

使用Spring配置实现抽象服务,spring,hibernate,abstract-class,Spring,Hibernate,Abstract Class,我在Spring配置中实现了如下服务 <bean id="Dao" class="com.dao.DaoImpl" abstract="true"></bean> <bean id="eduservice" class="com.services.DaoServiceImpl"></bean> 编辑 ServiceImpl类是: import java.util.List; import java.util.Map; impor

我在Spring配置中实现了如下服务

<bean id="Dao" class="com.dao.DaoImpl" abstract="true"></bean>
       <bean id="eduservice" class="com.services.DaoServiceImpl"></bean> 
编辑

ServiceImpl类是:

import java.util.List;
import java.util.Map;

import javax.persistence.Entity;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.dao.Dao;
import com.dao.DaoImpl;

@Service
public abstract class DaoServiceImpl<T> implements DaoService<T>{
    @Override
    @Transactional
    public void update(T entity) {
        getDomainDAO().update(entity);
    }

    @Override
    @Transactional
    public int save(T entity) {
        System.out.println(":::");
        return getDomainDAO().save(entity);
    }

    @Override
    @Transactional
    public void delete(T entity) {
        getDomainDAO().delete(entity);
    }

    @Override
    @Transactional(readOnly = true)
    public T find(int id) {
        return getDomainDAO().find(id);
    }

    @Override
    @Transactional(readOnly = true)
    public List<T> find() {
        return getDomainDAO().find();
    }

    @Override
    @Transactional
    public void saveOrUpdate(T entity) {
        getDomainDAO().saveOrUpdate(entity);
    }

    protected abstract Dao<T> getDomainDAO();

}
import java.util.List;
导入java.util.Map;
导入javax.persistence.Entity;
导入org.hibernate.SessionFactory;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Service;
导入org.springframework.transaction.annotation.Transactional;
导入com.dao.dao;
导入com.dao.DaoImpl;
@服务
公共抽象类DaoServiceImpl实现DaoService{
@凌驾
@交易的
公共无效更新(T实体){
getDomainDAO().update(实体);
}
@凌驾
@交易的
公共整数保存(T实体){
System.out.println(“:”);
返回getDomainDAO().save(实体);
}
@凌驾
@交易的
公共作废删除(T实体){
getDomainDAO().delete(实体);
}
@凌驾
@事务(只读=真)
公共找不到(内部id){
返回getDomainDAO().find(id);
}
@凌驾
@事务(只读=真)
公共列表查找(){
返回getDomainDAO().find();
}
@凌驾
@交易的
公共作废保存或更新(T实体){
getDomainDAO().saveOrUpdate(实体);
}
受保护的抽象Dao getDomainDAO();
}

我需要帮助……请帮帮我(

也许这就是你想要做的

编辑:在我看来,你可能是在追求,如果是的话,你应该是这样的

<bean id="customerDao" class="com.services.Dao"></bean>
<bean id="eduservice"   class="com.services.DaoServiceImpl">
      <lookup-method name="getDomainDAO" bean="customerDao"/>
</bean> 


这里T,Dao customerDao=new Dao();

我将抽象类扩展为一个通用类,并将通用类定义为bean配置。现在它可以正常工作了
<bean id="customerDao" class="com.services.Dao"></bean>
<bean id="eduservice"   class="com.services.DaoServiceImpl">
      <lookup-method name="getDomainDAO" bean="customerDao"/>
</bean>